Вам задана строка \(s\), состоящая из \(n\) символов 0 и/или 1.
Вы делаете \(m\) копий этой строки. Пусть \(i\)-я копия — это строка \(t_i\). Затем вы выполняете ровно одну операцию над каждой из копий: в \(i\)-й копии вы сортируете подстроку \([l_i; r_i]\) (подстроку, начинающуюся с \(l_i\)-го символа и заканчивающуюся \(r_i\)-м символом, обе границы включаются). Заметьте, что каждая операция затрагивает только одну копию, и каждая копия затрагивается только одной операцией.
Ваша задача — посчитать количество различных строк среди \(t_1, t_2, \ldots, t_m\). Заметьте, что изначальная строка \(s\) должна считаться только тогда, когда хотя бы одна копия остается неизменной после операции.
Выходные данные
Выведите одно целое число — количество различных строк среди \(t_1, t_2, \ldots, t_m\).
Примечание
Рассмотрим первый тестовый пример. Копии ниже представлены в порядке операций из входных данных. Сортируемые подстроки подчеркнуты:
- 101100 \(\rightarrow\) 011100;
- 101100 \(\rightarrow\) 011100;
- 101100 \(\rightarrow\) 101100;
- 101100 \(\rightarrow\) 101100;
- 101100 \(\rightarrow\) 000111.
Среди \(t_1, t_2, t_3, t_4, t_5\) всего три различные строки: 000111, 011100 и 101100.
Рассмотрим второй тестовый пример:
- 100111 \(\rightarrow\) 100111;
- 100111 \(\rightarrow\) 001111;
- 100111 \(\rightarrow\) 001111;
- 100111 \(\rightarrow\) 010111.
Среди \(t_1, t_2, t_3, t_4\) всего три различные строки: 001111, 010111 и 100111.
| № | Входные данные | Выходные данные |
|
1
|
3
6 5
101100
1 2
1 3
2 4
5 5
1 6
6 4
100111
2 2
1 4
1 3
1 2
1 1
0
1 1
|
3
3
1
|