PivotOJ

Telephone

시간 제한: 1000ms메모리 제한: 512MB출처: USACO 2021 January GoldBOJ 20968

문제

Farmer John's NN cows, conveniently numbered 1N1 \ldots N, are standing in a line (1N51041\le N\le 5\cdot 10^4). The iith cow has a breed identifier bib_i in the range 1K1 \ldots K, with 1K501\le K\le 50. The cows need your help to figure out how to best transmit a message from cow 11 to cow NN.

It takes ij|i-j| time to transmit a message from cow ii to cow jj. However, not all breeds are willing to communicate with each other, as described by a K×KK \times K matrix SS, where Sij=1S_{ij} = 1 if a cow of breed ii is willing to transmit a message to a cow of breed jj, and 00 otherwise. It is not necessarily true that Sij=SjiS_{ij}=S_{ji}, and it may even be the case that Sii=0S_{ii} = 0 if cows of breed ii are unwilling to communicate with each-other.

Please determine the minimum amount of time needed to transmit the message.

입력

The first line contains NN and KK.

The next line contains NN space-separated integers b1,b2,,bNb_1,b_2,\ldots,b_N.

The next KK lines describe the matrix SS. Each consists of a string of KK bits, SijS_{ij} being the jjth bit of the iith string from the top.

출력

Print a single integer giving the minimum amount of time needed. If it is impossible to transmit the message from cow 11 to cow NN, then output 1-1.

예제

예제 1

입력
5 4
1 4 2 3 4
1010
0001
0110
0100
출력
6
코드를 제출하려면 로그인하세요.