D. Три сына
ограничение по времени на тест
1 second
ограничение по памяти на тест
256 megabytes
ввод
input.txt
вывод
output.txt

Старый фермер оставил трем своим сыновьям наследство — прямоугольное кукурузное поле, разбитое на n × m клеточек. Про каждую клеточку известно, сколько тонн кукурузы на ней растет. Своих сыновей фермер любил неодинаково, поэтому завещал разделить свое наследство на три части c суммарным количеством кукурузы A, B и C тонн.

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

Ваша задача — найти количество способов разделить поле описанным выше способом, то есть провести две линии, рассекающие поле на три части таким образом, чтобы на одной из получившихся частей росло A тонн кукурузы, на другой B, а на оставшейся C.

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

В первой строке через пробел записаны целые числа n и m — размеры участка (1 ≤ n, m ≤ 50, max(n, m) ≥ 3). Далее следует описание поля: n строк, каждая из которых содержит по m целых чисел cij, записанных через пробел (0 ≤ cij ≤ 100) — количество кукурузы в каждой клетке (в тоннах). В последней строке через пробел записаны целые числа A, B, C (0 ≤ A, B, C ≤ 106).

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

Выведите ответ — количество способов разделить наследство так, чтобы на одной из получившихся частей росло A тонн кукурузы, на другой B, а на оставшейся C. Если не существует ни одного способа, выведите 0.

Примеры
Входные данные
3 3
1 1 1
1 1 1
1 1 1
3 3 3
Выходные данные
2
Входные данные
2 5
1 1 1 1 1
2 2 2 2 2
3 6 6
Выходные данные
3
Входные данные
3 3
1 2 3
3 1 2
2 3 1
5 6 7
Выходные данные
0
Примечание

Линии раздела могут быть как горизонтальными, так и вертикальными, но должны быть параллельны друг другу.