Олимпиадный тренинг

Задача . A. Майк и телефон


Купаясь на пляже, Майк случайно уронил свой телефон в воду. Сильно не беспокоясь, Майк купил дешевый телефон с кнопочной клавиатурой в качестве замены. Клавиатура состоит из десяти цифровых кнопок одинакового размера, расположенных привычным образом:

Вместе со старым телефоном Майк потерял и весь список контактов, и теперь он может вспомнить только как двигались его пальцы при наборе того или иного номера. Формально, движениями пальцев следует считать последовательность векторов, соединяющих центры кнопок, последовательно нажимаемых в процессе набора номера. К примеру, движения пальцев для номеров "586" и "253" совпадают:

Майк уже успел набрать номер по "памяти пальцев" и начать вызов, поэтому ему очень важно знать, может ли он быть уверен в том, что звонит по правильному номеру? Другими словами, существует ли какой-нибудь номер отличный от данного, с такими же движениями пальцев?

Входные данные

В первой строке входных данных содержится целое число n (1 ≤ n ≤ 9) — количество цифр в номере, который Майк уже успел набрать.

Во второй строке содержится сам номер, состоящий из n цифр от «0» до «9».

Выходные данные

Если другого номера, соответствующего движениям пальцев Майка для набранного им номера, не существует и он может быть уверен в правильности номера, выведите «YES» (без кавычек).

В противном случае, в первой строке выведите «NO» (без кавычек).

Примечание

В качестве пояснения к первому примеру входных данных используйте картинки из условия выше.


Примеры
Входные данныеВыходные данные
1 3
586
NO
2 2
09
NO
3 9
123456789
YES
4 3
911
YES

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя