Как известно, не все олимпиады по
программированию проводятся по правилам ACM ICPC.
Один из альтернативных вариантов (частный случай правил областной олимпиады
школьников этого года) состоит в следующем.
Множество тестов к задаче делится на непересекающиеся
непустые подмножества, называемые подзадачами. Все тесты одной и той же
подзадачи оцениваются одинаковым целым количеством баллов (но в разных
подзадачах баллы за тесты могут отличаться). Итоговый балл за решение
вычисляется как сумма баллов по всем пройденным тестам. Полностью верное
решение должно получать ровно 100 баллов.
Рассмотрим пример. Пусть у нас есть две подзадачи,
первая содержит 6 тестов стоимостью по 5 баллов каждый, вторая — 10 тестов по 7
баллов. Если решение прошло 2 теста из первой подзадачи и 3 теста из второй
подзадачи, то оно получает 2*5 + 3*7 = 31 балл.
Заметим, что не все целые числа от 0 до 100 могут быть
допустимыми результатами участников. Например, 1 балл в данном примере набрать
невозможно.
Как-то раз в некотором городе прошла олимпиада по
описанным правилам. После окончания олимпиады один из её участников, изучая
протокол с результатами, почему-то засомневался — а действительно ли могли
получиться такие результаты по одной из задач. Участник помнит общее количество
тестов, количество подзадач, а также максимальный балл, который можно было
набрать по каждой подзадаче. К сожалению, он не помнит, сколько в каждой
подзадаче было тестов.
Определите, сколько могло быть тестов в каждой
подзадаче, чтобы результаты из протокола олимпиады действительно могли быть
получены всеми участниками.
Входные данные. Первая строка входных данных содержит три разделенных пробелами целых числа T,
S и N,
где T — количество тестов, S — количество подзадач, N
— количество неповторяющихся результатов участников (1 ≤ T ≤ 100, 1 ≤ S ≤ 10, 1 ≤ N ≤ 100).
Вторая строка содержит S
разделённых пробелом положительных целых
чисел — максимально возможные баллы за каждую
подзадачу. Сумма этих чисел гарантированно равна 100.
Третья строка содержит N
разделенных пробелом упорядоченных по
возрастанию неповторяющихся целых чисел в диапазоне от 1 до 100 — различные ненулевые результаты участников из
протокола олимпиады.
Выходные данные. В первую строку выходных данных
выведите слово "YES" (без кавычек), если решение существует, и "NO", если нет.
В случае ответа "YES" в следующей строке выведите S разделенных
пробелом целых чисел — количество тестов в
каждой подзадаче. Если возможно несколько верных ответов, выведите любой.
Примеры
Входные данные
|
Выходные данные
|
16
2 3
30
70
12
19
95
|
YES
6
10
|
2 2 1
40 60
50
|
NO
|