#P2890. Matrix Multiplication

Matrix Multiplication

Description

Many studies have been done on developing efficient algorithms to calculate matrix multiplication. But it remains as a hard topic today. In this problem you are to calculate the 2006th power of a square Boolean matrix where addition and multiplication are defined as follows:

ABA + B
000
011
101
111

Truth Table of Addition

ABAB
000
010
100
111

Truth Table of Multiplication

Let A be a square matrix. The zeroth power of A is the identity matrix. The n-th (n > 0) power of A is the product of A and its (n 1)-th power.

Input

The input contains multiple test cases. Each test cases consists of some lines:

  • Line 1: Contains two integers K (K < 1000) and M (0 M ≤ 10K), indicating the dimension of the matrix is K × K and K + M elements of the matrix are 1’s.
  • Lines 2 ~ M + 1: Each contains two integers i and j (0 ≤ i, j < K, ij), indicating the element in the (i + 1)-th row and (j + 1)-th column is 1.

All elements on the primary diagonal of the matrix are 1’s.

Output

For each test case output one line containing the number of elements that are 1s in the 2006th power of the given matrix.

3 4
1 2
2 1
0 1
0 2
7

Source

POJ Monthly--2006.07.30

, Static