이 문제의 도시는 동서로 놓인 도로 N개와 남북으로 놓인 도로 M개가 만드는 격자다. 동서 도로와 남북 도로가 만나는 곳마다 교차로가 있고, 교차로마다 보행자 신호등이 있다. 보행자는 초록불인 방향으로만 길을 건널 수 있다.
교차로는 북쪽에서 남쪽으로 0번 행부터 N−1번 행까지, 서쪽에서 동쪽으로 0번 열부터 M−1번 열까지 번호를 붙인다.
보행자는 남서쪽 블록의 북동쪽 모퉁이에서 출발해 북동쪽 블록의 남서쪽 모퉁이까지 가려고 한다. 즉 출발점은 교차로 (N−1,0)의 남서쪽 모퉁이이고, 목적지는 교차로 (0,M−1)의 북동쪽 모퉁이다.
보행자가 할 수 있는 이동은 두 가지다.
보행자는 블록의 변 위에서만 움직인다. 블록의 한 모퉁이에서 대각선 반대쪽 모퉁이로 바로 갈 수는 없다. 모퉁이에서는 원하는 만큼 기다릴 수 있다.

신호등은 다음 주기를 반복한다. 교차로 i에서 남북 신호는 Si분 동안 초록불이고, 그 동안 동서 신호는 빨간불이다. 그 다음 남북 신호가 빨간불, 동서 신호가 초록불로 바뀌어 Wi분 동안 유지된다. 그리고 같은 주기가 다시 시작된다. 보행자는 t=0분에 출발하고, 교차로 i의 신호는 t=Ti분에 남북 방향이 초록불로 바뀌면서 한 주기를 시작한다. t=Ti 이전에도 같은 주기가 계속 반복되고 있었다.
예를 들어 어떤 교차로의 값이 S0=3, W0=2, T0=0이라고 하자. 0분에 남북 방향이 초록불로 바뀌어 3분 동안 유지되므로, 그 동안 보행자는 남북 방향으로만 건널 수 있고 동서 방향으로는 건널 수 없다. 그 다음 신호가 바뀌어 이어지는 2분 동안은 동서 방향으로만 건널 수 있다. 시작한 지 5분 뒤에 주기가 다시 시작된다. 이 설정은 S0=3, W0=2, T0=10과 완전히 같다.
첫 줄에 테스트 케이스의 개수 C가 주어진다. 이어서 C개의 테스트 케이스가 아래 형식으로 주어진다.
각 테스트 케이스의 첫 줄에는 동서 도로의 수(행의 수) N과 남북 도로의 수(열의 수) M이 공백으로 구분되어 주어진다. 이어서 N개의 줄이 주어진다. 그 중 i번째 줄은 북쪽에서 i번째 행에 있는 교차로의 정보이고(가장 북쪽 행이 0번 행), 공백으로 구분된 정수 3M개가 다음 순서로 주어진다.
Si,0 Wi,0 Ti,0 Si,1 Wi,1 Ti,1 … Si,M−1 Wi,M−1 Ti,M−1
Si,j, Wi,j, Ti,j는 북쪽에서 i번째 행, 서쪽에서 j번째 열에 있는 교차로의 값이다.
제한
각 테스트 케이스마다 한 줄에 Case #x: t를 출력한다. x는 테스트 케이스의 번호이고, t는 보행자가 출발점에서 목적지까지 가는 데 걸리는 최소 시간(분)이다.
첫 번째 예제의 첫 테스트 케이스는 문제에서 설명한 신호와 같다. 보행자는 북쪽으로 건너고(1분), 2분을 기다린 뒤 동쪽으로 건넌다(1분). 모두 4분이 걸린다.
두 번째 테스트 케이스는 아래 그림과 같다. 보행자는 동쪽으로 건너고(1분), 2분을 기다린 뒤 북쪽으로 건넌다(1분). 그 다음 동쪽으로 한 블록을 걸어가고(2분) 다시 동쪽으로 건넌다(1분). 모두 7분이 걸린다.
