Problem description


Sprzątanie akademika
(C)
Limit pamięci: 256 MB
Limit czasu: 1.00 s

Jako, że święta tuż-tuż, to dwaj studenci postanowili posprzątać swój pokój pierwszy raz od momentu, gdy się do niego wprowadzili (wprowadzili się dwa lata temu).

Na podłodze wala się wiele śmieci różnych rodzajów. Wykształceni studenci świadomi są potrzeby ich segregacji, wobec czego w jednym przejściu od pokoju do śmietnika student weźmie pewną liczbę odpadów tego samego rodzaju.

Nasi bohaterowie są jednak sprytni. By nie przeszkadzać sobie nawzajem w zbieraniu syfu z podłogi, chodzą do śmietnika na zmiany: najpierw Student 1 zbiera jakieś śmieci i dopiero wtedy, gdy wychodzi je wyrzucić, Student 2 zaczyna zbierać swoje. Gdy Student 1 wraca zebrać więcej śmieci, Student 2 jest w drodze do śmietnika.

Student oczywiście nie będzie się przemęczał bardziej niż jego kolega student. Widząc, że współlokator wziął ze sobą x śmieci, w kolejnym przejściu nie weźmie ich więcej niż x. Z drugiej strony obaj chcieliby kiedyś skończyć, więc podczas każdego przejścia student zabierze przynajmniej jednego śmiecia. Podsumowując, jeśli jeden ze studentów zabrał ze sobą x śmieci, to drugi z nich w kolejnym przejściu zabierze pewną, wybraną przez siebie liczbę śmieci mieszczącą się w przedziale [1,x].

Ten z nich, który pierwszy skończy sprzątać – czyli na początku swojej tury zastanie podłogę czystą – natychmiast zacznie grać na komputerku (są biedni i mają jeden komputerek, więc drugi nie pogra; mają też jeden wspólny talerz).

Sprzątanie rozpoczyna Student 1. Ponieważ konsekwentnie oblewał każdy semestr wuefu, nie uniesie na raz więcej niż K śmieci.

Twoim zadaniem jest napisanie programu, który wczyta opis śmieci w ich pokoju, a następnie stwierdzi, czy Student 1 będzie mógł pograć na komputerku, niezależnie od wyborów Studenta 2.

Wejście

W pierwszym wierszu wejścia znajdują się dwie liczby całkowite N i K oddzielone pojedynczym odstępem, oznaczające kolejno liczbę różnych rodzajów odpadów oraz maksymalny udźwig studenta.
W drugim wierszu wejścia znajduje się N liczb całkowitych, pooddzielanych pojedynczymi odstępami. Oznaczymy i-tą z nich przez Ai. Jest to liczba śmieci i-tego rodzaju.

Wyjście

Wyjście składa się z jednego wiersza.
W wierszu tym powinien znaleźć się napis TAK jeśli Student 1 może skończyć sprzątanie jako pierwszy niezależnie od wyborów Studenta 2.
W przeciwnym przypadku powinien znaleźć się tam napis NIE.

Ograniczenia

1 ≤ N ≤ 100 000, 1 ≤ K, Ai ≤ 109.

Podzadania

Podzadanie Warunki Punkty
1 K = 1 26
2 N = 1, K ≤ 100, A1 ≤ 100 8
3 N ≤ 10, Ai ≤ 5 19
4 N = 1 16
5 K = 2 16
6 K jest potęgą dwójki 7
7 brak dodatkowych ograniczeń 8

Przykład

Wejście Wyjście Wyjaśnienie
1 1
1
NIE

Student 1 ma tylko jeden ruch, po którym przegrywa.

Wejście Wyjście Wyjaśnienie
2 2
2 1
TAK

Student 1 może zabrać dwa odpady. Po tym ruchu Student 2 ma tylko jeden ruch, po którym przegrywa.

Wejście Wyjście
2 2
4 1
NIE
Wejście Wyjście
2 4
4 1
TAK