Вечеринка
Кейт готовится к вечеринке и приобрела необычную гирлянду. Эта гирлянда представляет собой замкнутую цепь лампочек, каждая из которых может находиться в одном из следующих состояний: N - не светится, R - светится красным, G - светится зелёным, B - светится синим. Каждую секунду состояние каждой лампочки изменяется в соответствии с таблицей:
Ряд выбирается по текущему состоянию лампочки, а столбец - по состоянию лампочки справа. Значение на пересечении выбранного ряда и столбца определяет новое состояние лампочки. Например, если лампочка светится красным (R), а лампочка справа светится зелёным (G), то в следующую секунду лампочка будет светиться синим (B). Если обе лампочки светятся синим, то в следующую секунду лампочка не будет светиться. Все лампочки меняют свои состояния одновременно. Такое поведение должно (теоретически) приводить к постоянному мерцанию гирлянды. Однако иногда гирлянда может прийти к состоянию, когда все лампочки не светятся, и тогда она перестаёт мерцать. Кейт обеспокоена, что это может испортить вечеринку. Она хочет установить начальные состояния лампочек так, чтобы гирлянда мерцала как можно дольше. Помогите ей определить, сколько времени гирлянда будет мерцать, начиная с заданного начального состояния.
Входные данные
Входной файл содержит одну строку, состоящую из символов 'N', 'R', 'G' и 'B', которые описывают начальное состояние гирлянды. Каждый символ соответствует начальному состоянию одной лампочки. Лампочки перечислены слева направо, а первая лампочка находится справа от последней. Длина строки не превышает 1234567 символов.
Выходные данные
Выведите количество секунд, в течение которых гирлянда будет мерцать. Если гирлянда не перестанет мерцать (по крайней мере, до тех пор, пока не будет отключено питание), выведите "Party!" (кавычки для ясности).
Гирлянда будет менять состояние следующим образом:
RGBG BRRB GNGN GGGG NNNN