Вам задан массив \(a\) длины \(n\), положительное целое число \(m\) и строка команд из \(n\) символов. Каждая команда — это либо символ 'L', либо символ 'R'.
Обработайте все \(n\) команд в порядке их записи в строке \(s\). Обработка команды производится следующим образом:
- сначала выведите остаток от произведения значений всех элементов массива \(a\) при делении на \(m\),
- затем, если команда равна 'L', то удалите из массива \(a\) крайний левый элемент, если команда равна 'R', то удалите из массива \(a\) крайний правый элемент.
Обратите внимание, что после каждого хода длина массива \(a\) уменьшается на \(1\) и после обработки всех команд он окажется пустым.
Напишите программу, которая совершит обработку всех команд в порядке из записи в строке \(s\) (слева направо).
Выходные данные
Для каждого набора входных данных выведите \(n\) целых чисел \(b_1, b_2, \dots, b_n\), где \(b_i\) — остаток при делении произведения всех элементов текущего состояния массива \(a\) на \(m\) в начале выполнения \(i\)-й команды.
Примечание
В первом наборе входных данных примера:
- \(3 \cdot 1 \cdot 4 \cdot 2 \bmod 6 = 24 \bmod 6 = 0\);
- \(s_1 = \text{L}\), так что удалим первый элемент и получим массив \([1, 4, 2]\);
- \(1 \cdot 4 \cdot 2 \bmod 6 = 8 \bmod 6 = 2\);
- \(s_2 = \text{R}\), так что удалим последний элемент и получим массив \([1, 4]\);
- \(1 \cdot 4 \bmod 6 = 4 \bmod 6 = 4\);
- \(s_3 = \text{R}\), так что удалим последний элемент и получим массив \([1]\);
- \(1 \bmod 6 = 1\);
- \(s_4 = \text{L}\), так что удалим первый элемент и получим пустой массив.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
4 4 6 3 1 4 2 LRRL 5 1 1 1 1 1 1 LLLLL 6 8 1 2 3 4 5 6 RLLLRR 1 10000 10000 R
|
0 2 4 1
0 0 0 0 0
0 0 0 4 4 4
0
|