Векторы
На плоскости задано множество точек (x, y)
, где x
и y
(1 ≤ x ≤ M
, 1 ≤ y ≤ N
) - целые. С каждой точки выходит ровно один из следующих векторов: (-1
, -1
), (-1
, 0), (-1
, 1), (0, 1), (1, 1)
, (1, 0), (1, -1
), (0, -1
). Каждый вектор соединяет одну целочисленную точку плоскости с другой. Например, если из точки (2, 5)
выходит вектор (1, 1)
, то он соединяет эту точку с (3, 6)
, но не наоборот.
Последовательность из двух и более точек плоскости a[1], a[2], …, a[k] назовём циклом, если каждая точка a[i] соединена вектором с a[i]+1 (1 ≤ i
≤ k - 1), и a[k] соединена вектором с a[1]. Циклы считаются разными, если они отличаются хотя бы одной вершиной.
Напишите программу, которая по информации о векторах, выходящих из точек плоскости, находит количество разных циклов.
Входные данные
Первая строка содержит два целых числа N
(1 ≤ N ≤ 100
) и M
(1 ≤ M ≤ 100
). Каждая из последующих N
строк, содержит M
пар чисел (то есть 2×M чисел). Пара x
, находящаяся в строке y
задаёт вектор в точке (x, y)
.
Выходные данные
Вывести одно целое число - количество циклов, образованных векторами.