B. Сбой
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

При проведении соревнований по программированию «Russian Code Cup», в проверяющей системе сохраняются все посланные решения для каждого участника. Известно, что многие участники используют в своих программах случайные числа и часто отправляют на проверку несколько решений с одинаковым исходным кодом.

В проверяющей системе каждый участник идентифицируется некоторым уникальным целым числом k, а каждое отправленное решение A характеризуется двумя целыми числами: x — числом различных решений, отправленных до первого решения, идентичного решению A, и k — идентификатором участника, который является автором решения. Логично, что все одинаковые решения имеют одинаковый x.

Известно, что данные в проверяющей системе хранятся в хронологическом порядке. То есть, если в проверяющей системе есть решение под номером x (x > 0) участника с номером k, то где-то раньше в проверяющей системе хранится решение с номером x - 1 того же участника.

Во время проведения соревнований, в проверяющей системе произошел сбой, после чего данные о подходах всех участников были восстановлены. Теперь жюри хотят проверить, что восстановленные данные идут в хронологическом порядке. Помогите жюри сделать это.

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

В первой строке дано целое число n (1 ≤ n ≤ 105) — количество записей. В n последующих строках содержится по два целых числа: x и k через пробел (0 ≤ x ≤ 105; 1 ≤ k ≤ 105) — количество предыдущих уникальных посылок и номер участника, автора этого решения.

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

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

Примеры
Входные данные
2
0 1
1 1
Выходные данные
YES
Входные данные
4
0 1
1 2
1 1
0 2
Выходные данные
NO
Входные данные
4
0 1
1 1
0 1
0 2
Выходные данные
YES