남은 격자에서 체스판 무늬를 이루는 가장 큰 정사각형을 위쪽, 왼쪽 순으로 잘라내며 크기별 개수를 셉니다.
보통7동적 계획법시뮬레이션행렬아직 제출이 없습니다시간 제한5초메모리 제한512 MB체스판 산업이 어려운 시기를 맞아 도움이 필요하다. 체스판이 아주 희귀한 크로아티아 체스판 나무(Biggus Mobydiccus)의 껍질로 만들어진다는 사실은 잘 알려져 있지 않다. 이 나무의 껍질을 벗겨 펼치면 검은 칸과 흰 칸이 격자로 늘어선 커다란 직사각형 판이 된다.
당신이 할 일은 큰 정사각형 체스판을 최대한 많이 잘라내는 것이다. 여기서 체스판이란 껍질에서 잘라낸 정사각형 조각으로, 네 변이 껍질 직사각형의 변과 평행하고, 같은 색 칸 두 개가 절대 변을 맞대지 않도록 칠해져 있는 것을 말한다.
체스판을 하나 잘라낼 때마다 남아 있는 껍질에서 만들 수 있는 가장 큰 체스판을 골라야 한다. 그런 체스판이 여러 개면 가장 위쪽에 있는 것을 고르고, 그래도 여러 개면 가장 왼쪽에 있는 것을 고른다. 껍질이 하나도 남지 않을 때까지 이 과정을 반복한다. 1×1짜리 작은 체스판까지 잘라내야 하는 경우도 있다.
아래 그림은 체스판 나무의 껍질과 거기에서 가장 먼저 잘라내는 체스판 몇 개를 보여준다.

첫 줄에 테스트 케이스의 개수 T가 주어진다. 이어서 T개의 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 줄에는 껍질 격자의 크기 M과 N이 주어진다. N은 항상 4의 배수이다. 다음 M개의 줄에는 각각 N/4글자짜리 16진수 정수가 주어지며, 이 정수를 2진수로 나타내면 격자 한 행에 해당하는 N개의 비트가 된다. 0은 검은 칸, 1은 흰 칸이다. 행은 위에서 아래 순서로 주어진다. 각 행에서 16진수 정수의 최상위 비트가 그 행의 가장 왼쪽 칸에 대응한다.
각 테스트 케이스마다 "Case #x: K" 형식의 줄을 하나 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, K는 위 절차를 따라 잘라낸 체스판 크기의 가짓수이다. 이어지는 K개의 줄에는 각각 정수 두 개를 출력한다. 체스판의 크기(큰 것부터 작은 것 순서)와 그 크기의 체스판을 잘라낸 개수이다.
첫 번째 예제 입력이 위 그림의 껍질에 해당한다.