온라인 쇼핑이 늘면서 여러 상점의 가격을 한눈에 비교해 주는 서비스가 인기를 끕니다. 이런 서비스는 특정 상품의 가장 싼 가격을 빠르게 보여 주기 위해, 가격표를 최대한 정돈된 형태로 배치하려고 합니다.
가격표가 하나 주어집니다. 이 표에는 상품마다 한 행씩 a개의 행이 있고, 온라인 상점마다 한 열씩 b개의 열이 있습니다. i번째 행 j번째 열의 칸은 상품 i의 상점 j에서의 가격입니다.
상품(행)의 순서와 상점(열)의 순서는 서로 독립적으로, 원하는 대로 바꿀 수 있습니다. 어떤 배치가 정해지면 표 문자열은 표를 행 단위로 읽어서 만듭니다. 즉 각 상품을 순서대로 보면서 그 상품의 모든 상점 가격을 순서대로 나열하고, 모든 값을 공백 하나로 구분합니다.
행과 열의 모든 배치 중에서 표 문자열이 가장 작은 것을 출력하세요. 두 표 문자열은 값 단위로 비교합니다. 두 문자열이 처음으로 달라지는 위치에서 가격(센트 단위 정수)이 더 작은 쪽이 더 작은 표 문자열입니다.
첫 줄에 테스트 케이스의 개수 n이 주어집니다.
이어지는 n개의 줄에는 각각 하나의 테스트 케이스가 주어집니다. 한 줄은 두 정수 a와 b (1≤a,b≤5)로 시작하며, 각각 상품의 수와 상점의 수입니다. 그 뒤에는 표의 처음 배치를 나타내는 표 문자열로서 a⋅b개의 가격이 이어집니다. 즉 각 상품을 순서대로 보면서 그 상품의 상점별 가격 b개가 차례로 나옵니다. 각 가격 p는 센트 단위의 정수이며 0≤p≤109을 만족합니다.
각 테스트 케이스마다 먼저 Scenario #i: 줄을 출력합니다. 여기서 i는 1부터 시작하는 테스트 케이스 번호입니다. 다음 줄에는 상품과 상점을 최적으로 재배치했을 때의 표 문자열을 출력합니다. 연속한 두 테스트 케이스 사이는 빈 줄로 구분합니다.