만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

암호

시간 제한2초메모리 제한512 MB

요약
자릿수마다 정해진 코드 문자가 1초마다 증가하는 숫자를 가리킬 때, 화면만 보고 처음 숫자를 확정할 수 있는 최소 시간을 구합니다.
난이도

보통10점 중 6점

유형
문자열, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

Borya는 최근 큰 전자 디스플레이를 손에 넣었다. 이 디스플레이를 관리하는 컴퓨터에는 정수 하나가 저장되어 있다. 이 수는 십진수 자릿수가 nn개이며, 디스플레이에는 각 자릿수가 영문 소문자 하나로 인코딩되어 표시된다.

디스플레이 옆에는 수를 어떻게 인코딩하는지 설명하는 규칙이 붙어 있다. 각 자릿수 위치 ii와 각 숫자 jj마다, 그 위치에서 숫자 jj를 나타내는 문자 cc가 정해져 있다. 서로 다른 숫자가 같은 문자로 표시될 수 있다.

수는 1초마다 1씩 증가한다. 수가 십진 표기로 nn개의 9가 되는 순간으로부터 1초 뒤에 큰 경고음이 울린다.

Andrew는 컴퓨터에 저장된 수를 알고 있다. 그는 Borya가 디스플레이에 인코딩된 원래 수가 무엇인지 확실히 알 수 있을 때까지 몇 초가 지나야 하는지 알고 싶어 한다. Borya는 시간을 정확히 잴 수 있다. 인코딩된 수는 Borya가 디스플레이를 보기 시작한 순간으로부터 정확히 1초 뒤에 처음으로 증가한다.

입력

입력 데이터에는 여러 테스트 케이스가 들어 있다. 첫 줄에는 테스트 케이스의 수 tt(1≤t≤1001 ≤ t ≤ 100)가 주어진다.

각 테스트 케이스는 다음과 같다. 첫 줄에는 수의 자릿수 nn(1≤n≤181 ≤ n ≤ 18)이 주어진다. 둘째 줄에는 컴퓨터에 처음 저장된 수를 나타내는 십진수 자릿수 nn개가 공백 없이 주어진다. 앞자리가 0일 수 있다. 이어지는 nn개의 줄에는 각각 10개의 문자가 주어진다. 이 중 ii번째 줄의 jj번째 문자는 자릿수 위치 ii에서 숫자 j−1j-1을 나타내는 코드 문자이다. 최상위 자릿수 위치가 먼저 설명된다.

출력

각 테스트 케이스마다 정수 하나를 출력한다. 이 정수는 Borya가 디스플레이에 저장된 처음 수를 확실히 알게 될 때까지 걸리는 초이다. 출력할 때 앞에 0을 붙이지 않는다.

예제1

  1. 예제 1

    입력
    3
    2
    42
    abcdefghij
    jihgfedcba
    2
    42
    aaaaaaaaaa
    aaaaaaaaaa
    1
    2
    abcdabcdff
    
    예상 출력
    0
    58
    2