파일 업로드

조각 1

profile
실행 시간 제한메모리 제한
2 초512 MB
📃 해결할 문제

철수는 자신의 집을 더 멋지게 꾸미고 싶어졌습니다. 현지 아트 갤러리를 방문하던 중, 섬세한 유리 그림 조각을 발견합니다. 그는 이 조각을 사려고 결정하고, 이것이 자신의 벽난로 위 선반에 완벽하게 어울릴 것이라고 생각합니다.

그림 조각의 모양은 아래와 같이 N×NN \times N 문자 그리드로 설명됩니다(3N83 \leq N \leq 8), 여기서 '#' 문자는 그림 조각의 일부이고 '.' 문자는 아닙니다.

...............
...............
...............
#..#...........
####...........
############...
.##.#########..
....#######.##.
....##...##....
....##...##....
...............
...............
...............
...............
...............

하지만, 철수가 구매를 결정하기 직전에, 갤러리에 소동이 일어나면서 철수의 그림 조각뿐만 아니라 다른 유리 물건들도 다 깨져버립니다! 철수의 조각은 2개로 깨져서, 땅에 떨어진 총 KK 개의 조각들 사이에서 잃어버려집니다(3K103 \leq K \leq 10). 각 KK 조각들은 원래 그림 조각처럼 N×NN \times N 문자 그리드로 설명됩니다.

철수의 깨진 그림 조각 2개를 잘 찾아 그림을 복원해주십시오. 다행히 그림 조각 2개는 땅에 떨어질 때 회전하거나 뒤집히지 않았습니다. 그러므로 철수는 조각들을 수평 및/또는 수직으로 이동시켜 원래 그림 조각을 정확히 재구성할 수 있어야 합니다.

💻 입력

입력의 첫 번째 줄은 NNKK이 주어집니다.
다음 NN 줄은 철수의 원래 그림 조각을 설명하는 문자 그리드를 제공합니다. 
다음 KNKN 줄은 철수가 땅에서 찾은 KK 조각들의 문자 그리드를 제공합니다.

🖨️ 출력

두 개의 공백으로 구분된 정수를 출력해 주십시오. 
각 정수는 1K1 \ldots K 범위에 있어야하며, 철수의 그림 조각의 두 부분을 나타냅니다. 
해결책은 항상 존재하며 유일합니다. 출력하는 두 숫자는 정렬된 순서여야 합니다.


💻 예제 입력 1
4 3
####
#..#
#.##
....
.#..
.#..
##..
....
####
##..
#..#
####
....
.###
.#..
.#..
🖨️ 예제 출력 1
1 3

출처: USACO 2016 US Open Contest, Bronze Problem 2. Bull in a China Shop