10883. Вектори
На площині задана множина точок (\(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 \times M\) чисел). Пара \(x\), яка знаходиться у рядку \(y\), задає вектор у точці (\(x, y\)).
Формат вихідних даних
Єдиний рядок повинен містити ціле число – кількість циклів, утворених векторами.
Приклад вхідних даних
2 4
-1 1 -1 1 -1 0 0 1
1 0 1 0 0 -1 0 -1
Приклад вихідних даних
2
Коментарі