C. Прогулка по матрице
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Есть матрица A размера x × y, состоящая из целых чисел. Для каждого , Ai, j = y(i - 1) + j. Очевидно, каждое целое число из [1..xy] встречается в матрице ровно один раз.

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

Из клетки в i-й строке и j-м столбце (определим ее как (i, j)) можно перейти в следующие ячейки:

  1. (i + 1, j) — если i < x;
  2. (i, j + 1) — если j < y;
  3. (i - 1, j) — если i > 1;
  4. (i, j - 1) — если j > 1.

Заметьте, что один шаг требует перехода в соседнюю ячейку. Остаться в той же ячейке не разрешается.

Значения x и y не известны заранее, вам необходимо найти любые из возможных значений этих чисел такие, что можно начать в клетке, содержащей a1, потом перейти в клетку, содержащую a2 (за один ход), потом в ячейку с a3 (также за один ход) и так далее. Можно ли выбрать значения x и y так, чтобы последовательность шагов была корректной.

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

В первой строке записано одно целое число n (1 ≤ n ≤ 200000) — количество клеток, которые вы посетили на пути (если какая-то клетка посещена дважды, то она и записана дважды).

Во второй строке записаны n чисел a1, a2, ..., an (1 ≤ ai ≤ 109) — числа на ячейках на вашем пути.

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

Если не существует значений x и y таких, что 1 ≤ x, y ≤ 109 и информация о пути корректна, то выведите NO.

В противном случае выведите YES в первой строке, а во второй — значения x и y такие, что путь корректен с данным числом строк и столбцов в матрице. Помните, что это должны быть целые положительные числа, не превышающие 109.

Примеры
Входные данные
8
1 2 3 6 9 8 5 2
Выходные данные
YES
3 3
Входные данные
6
1 2 1 2 5 3
Выходные данные
NO
Входные данные
2
1 10
Выходные данные
YES
4 9
Примечание

Матрица и путь в ней в первом примере выглядит так:

Существует несколько правильных ответов для первого и третьего примеров.