У Васи было два массива, составленных из целых неотрицательных чисел: a размера n и b размера m. Вася выбрал натуральное число k и построил таблицу v размера n × m по следующему правилу:

Вася записал таблицу v на листок и положил в стол.
Спустя год Вася, копаясь в кипе вещей в столе, нашёл какой-то листок, на котором была записана таблица w размера n × m. Он вспомнил, что когда-то давно строил таблицу по вышеописанным правилам, но он не уверен, что нашёл тот самый листок с таблицей v. Ваша задача — выяснить, могла ли найденная таблица w быть получена по этим правилам, и если да, то определить какой-нибудь набор чисел k, a1, a2, ..., an, b1, b2, ..., bm, по которым могла полуиться такая таблица.
Выходные данные
Если таблица w не могла быть получена указанным в условии способом, в единственной строке выведите «NO» (без кавычек).
Иначе нужно вывести четыре строки.
В первой строке выведите «YES» (без кавычек).
Во второй строке выведите натуральное число k (1 ≤ k ≤ 1018). Обратите внимание, что каждый элемент таблицы w должен лежать в пределах от 0 до k - 1 включительно.
В третьей строке выведите n натуральных чисел a1, a2, ..., an (0 ≤ ai ≤ 1018).
В четвертой строке выведите m натуральных чисел b1, b2, ..., bm (0 ≤ bi ≤ 1018).
Примечание
Под записью
подразумевается остаток от целочисленного деления b на c.
Гарантируется, что если существует какой-то набор чисел k, a1, ..., an, b1, ..., bm, по которому могла быть построена таблица w, то существует и набор чисел, удовлетворяющий ограничениям 1 ≤ k ≤ 1018, 1 ≤ ai ≤ 1018, 1 ≤ bi ≤ 1018. Иными словами, эти верхние границы введены только для удобства проверки.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
2 3 1 2 3 2 3 4
|
YES
1000000007
0 1
1 2 3
|
|
2
|
2 2 1 2 2 0
|
YES
3
0 1
1 2
|
|
3
|
2 2 1 2 2 1
|
NO
|