\begin{problem}{Голод}{famine.in}{famine.out}{2 секунды}{256 мегабайт}

%Автор задачи: Виталий Демьянюк, Виталик Аксёнов
%Автор условия: Никита Кравцов

\setlength{\epigraphwidth}{.7\textwidth}
\epigraph{
И когда Он снял третью печать, я слышал третье животное, говорящее: иди и смотри.\\Я взглянул, и вот, конь вороной, и на нем всадник, имеющий меру в руке своей.\\И слышал я голос 
посреди четырех животных, говорящий: хиникс пшеницы за динарий, и три хиникса ячменя за динарий;\\
елея же и вина не повреждай.}
{Откровение Иоанна Богослова}
                
До конца света осталось не так много дней, но Третий всадник Апокалипсиса Голод так и не смог понять, какие города стоит наказывать за прегрешения, а какие нет.
Тогда он решил потренироваться на одной небольшой стране. 

Эта страна представляет собой клетчатый прямоугольник размера $n \times m$, в котором каждая клетка~--- отдельный город. 
Голод может либо наслать голод на город, либо пощадить его. При этом есть города, в которых
еды хватит и до следующего конца света, и Голод не в силах заставить их голодать, а есть те, в которых еды никогда и не было, и им в любом случае 
придется голодать.

Страшный Суд Голода должен быть еще и справедлив, а это значит, что в любом квадрате размера $2 \times 2$ должно быть поровну голодающих и 
сытых городов.
Теперь Голод хочет узнать количество различных вариантов распределения городов этой страны на голодающие и сытые.

\InputFile
В первой строке входного файла задано два целых числа $n$ и $m$ ($2 \le n, m \le 10^{3}$)~--- размер страны.
Далее следует $n$ строк по $m$ символов в каждой, где символ \texttt{'+'} означает, что соответствующий город не может голодать, символ \texttt{'-'}~--- соответствующий 
город будет голодать в любом
случае и символ \texttt{'.'}~--- Голод может решить, что ему делать с этим городом.

\OutputFile
Выведите количество различных вариантов наслать голод на эту страну по модулю $10^{9} + 7$

\Examples
\begin{example}%
\exmp{
3 2
+.
..
.-
}{
2
}%
\end{example}

\Note
Решения, работающие в случаях, когда $n \times m \le 20$, будут оцениваться в $10$ баллов.

Решения, работающие в случаях, в которых $n \le 10$ и $m \le 50$, будут оцениваться в $40$ баллов.

Решения, работающие в случаях, в которых $n \le 15$ и $m \le 100$, будут оцениваться в $60$ баллов.
\end{problem}
