\begin{problem}{Шифровка}{binary.in}{binary.out}{2 секунды}{256 мегабайт}

%Автор задачи: Дмитрий Филиппов
%Автор условия: Дмитрий Филиппов

Мориарти умер, но у него осталось множество последователей. И вот вчера в город с важным посланием прибыл один из них.
Подкараулив его, Ватсон и Холмс поймали преступника, нашли у него в кармане письмо с посланием и стали допрашивать. 

Допросив его, они узнали следующую информацию: в письме содержится зашифрованное описание коварного плана, который Мориарти
не успел осуществить при жизни. Всю информацию злой гений предпочитал хранить в двоичном коде~--- в виде строки, состоящей из нулей и единиц.
Для шифрования сообщения, описывающего его коварный план, Мориарти использовал следующий алгоритм: он разбил строку, хранящуюся в двоичном коде,
на максимальные по размеру группы подряд идущих одинаковых символов, а затем каждую группу заменил на соответствующий символ и количество
его вхождений в данную группу. К примеру, группу \texttt{111} он заменит на \texttt{13}, а группу \texttt{0000000000} на \texttt{010}. Тогда
строку \texttt{11100} Мориарти заменит на \texttt{1302}, а строку \texttt{00000000001} на \texttt{01011}.

Также оказалось, что после применения этого алгоритма шифрования к строке, описывающей коварный план, получилась строка, которая также
является строкой, записанной в двоичном коде. Эту строку и послал в письме профессор. 

Больше ничего узнать про это послание не удалось. Теперь Шерлок задался вопросом: как узнать, что именно было зашифровано?
Однозначно вряд ли получится узнать. Поэтому он хочет узнать хотя бы количество возможных сообщений, которые после шифрования совпали бы с сообщением,
которое они с Ватсоном перехватили. Это количество может быть довольно большим, поэтому Холмс просит Вас только найти его остаток от деления на
$1\,000\,000\,007$.

\InputFile
В первой строке входного файла дано одно число $n$~--- длина сообщения, которое перехватили Холмс и Ватсон
($1 \le n \le 100\,000$).

Во второй строке входного файла дано это сообщение~--- строка длиной $n$, состоящая из символов \texttt{0} и \texttt{1}.

\OutputFile
В единственной строке выходного файла выведите количество возможных исходных сообщений по модулю $1\,000\,000\,007$.

\Example
\begin{example}%
\exmp{
4
0111
}{
2
}%
\exmp{
2
00
}{
0
}%
\end{example}
\Testing
Первая группа тестов состоит из тестов, для которых выполняется ограничение $n \le 20$. Баллы 
за эту группу начисляются только при прохождении всех тестов группы. Стоимость группы составляет $20$ баллов.

Вторая группа тестов состоит из тестов, для которых выполняется ограничение $n \le 1\,000$. Баллы 
за эту группу начисляются только при прохождении всех тестов группы. Стоимость группы составляет $40$ баллов.

Третья группа тестов состоит из тестов, для которых выполняется ограничение $n \le 100\,000$. Баллы 
за эту группу начисляются только при прохождении всех тестов группы. Стоимость группы составляет $40$ баллов.

Обратите внимание на возможность узнать результат проверки вашего решения на всех группах тестов, 
нажав на ссылку <<\texttt{Request feedback}>> на вкладке <<\texttt{Runs}>>.

\end{problem}