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

В стране есть n городов и m двусторонних дорог между ними. У каждого города есть армия. Армия i-го города состоит из ai солдат. В стране объявлена мобилизация. В результате неё каждый солдат должен либо остаться в своем городе, либо перейти в один из соседних городов, то есть перейти по не более чем одной дороге.

Проверьте, возможно ли, чтобы после перехода в i-м городе было ровно bi солдат.

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

Первая строка входа содержит два целых числа, n и m (1 ≤ n ≤ 100, 0 ≤ m ≤ 200).

В следующей строке записано n целых чисел a1, a2, ..., an (0 ≤ ai ≤ 100).

В следующей строке записано n целых чисел b1, b2, ..., bn (0 ≤ bi ≤ 100).

Затем слеует m строк, каждая состоит из двух целых чисел, p и q (1 ≤ p, q ≤ n, p ≠ q) обозначающих, что между городами p и q есть дорога.

Гарантируется, что между каждой парой городов существует не более одной дороги.

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

Если требуемое невозможно, выведите единственное слово: "NO".

В противном случае выведите слово "YES", а затем выведите n строк, в каждой строке выведите по n целых чисел. Число в i-й строке и j-м столбце должно обозначать, сколько солдат должно перейти из города i в город j (если i ≠ j), либо сколько солдат должно остаться в городе i (если i = j).

Если возможных ответов несколько, выведите любой из них.

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