11820. Обмежений Нім


Відправити розв'язок

Бали: 100
Time limit: 4.0s
Memory limit: 500M

Author:
Problem type
Allowed languages
C++, Java, Pascal, Python

Степан та Андрій зіграють один проти одного, використовуючи \(N\) куп каміння. Спочатку для кожного \(i = 1, 2, \ldots, N\) \(i\)-та купа складається з \(A_i\) камінців. Гравці по черзі виконують наступну дію, причому Степан ходить першим.

  • Виберіть купу, де залишився хоча б один камінь, і видаліть один або кілька каменів.

Однак існують \(M\) заборонених дій.

Для кожного \(i = 1, 2, \ldots, M\), не дозволяється точно видалити \(Y_i\) камінців з купи, складеної рівно з \(X_i\) камінців.

Перший гравець, який не зможе виконати дію, програє, що призводить до перемоги іншого гравця. Хто з гравців переможе, якщо обидва гравці використають оптимальну стратегію для перемоги?

Обмеження

  • \(1 \leq N \leq 2 \times 10^5\)
  • \(1 \leq M \leq 2 \times 10^5\)
  • \(1 \leq A_i \leq 10^{18}\)
  • \(1 \leq Y_i \leq X_i \leq 10^{18}\)
  • \(i \neq j\) слідує \((X_i, Y_i) \neq (X_j, Y_j)\)
  • Усі значення у вхідних даних є цілими числами.

Формат вхідних даних

Перший рядок містить цілі числа \(N, M\)

Наступний  рядок містить \(N\) цілих чисел \(A_i\)

Наступні  \(M\) рядків містять цілі числа \(X_i, Y_i\)

Числа у рядках розділяються пропуском.

Формат вихідних даних

У вихідний потік виведіть Stepan або Andriy - в залежності хто із них виграє.

Примітка

До прикладу 1:

Для кожного i = 1, 2, 3 нехай \(A'_i\)– кількість камінців, що залишилися в \(i\)-й купці.

Тепер ми використовуємо послідовність \(A' = (A'_1, A'_2, A'_3)\), щоб представити кількість камінців, що залишилися в купах.

Перед початком гри маємо \(A' = (1, 2, 4)\). Один із можливих прогресів гри такий.

  • Спочатку Степан знімає 1 камінь із 3-ї купи. Тепер \(A' = (1, 2, 3)\).
  • Далі Андрій забирає 2 камені з 2-ї купи. Тепер \(A' = (1, 0, 3)\).
  • Потім Степан витягує 2 камені з 3-ї купи. Тепер \(A' = (1, 0, 1)\).

На цьому етапі в 1-й і 3-й купах все ще є по 1 камінцю, але є заборона ー видаляти рівно 1 каменів зі стопки, що складається саме з 1 каменя, тому Андрій не може зробити хід. Степан перемагає.

Приклад вхідних даних

3 4
1 2 4
2 1
3 3
3 1
1 1

Приклад вихідних даних

Stepan

Приклад вхідних даних

1 5
5
5 1
5 2
5 3
5 4
5 5

Приклад вихідних даних

Andriy

Коментарі

Ще немає коментарів.