6789
면접 대비시간 제한1초메모리 제한1024 MB
각 칸에 6, 7, 8, 9 카드가 놓여 있고, 카드를 돌리면 6과 9가 서로 바뀌고 8과 7은 그대로다. 180도 회전해도 같은 행렬이 되도록 카드를 돌리는 최소 횟수를 구하고, 불가능하면 -1을 출력한다.
문제
재현이는 숫자를 좋아한다. 10개의 숫자 중에서 6, 7, 8, 9를 가장 좋아한다. 그래서 6, 7, 8, 9로만 이루어진 특별한 카드 세트를 만들었다.
현재 재현이는 장의 카드를 가지고 있다. 재현이는 행 열의 마법 같은 카드 행렬을 만들려고 한다. 행렬의 각 행에는 장의 카드가 들어가야 한다. 그는 이미 카드를 행 열 행렬 모양으로 배치해 두었다.
\
그림 1. 초기 상태. 점대칭이 아니다.
마법 행렬이 되려면 행렬이 점대칭이어야 한다. 행렬을 180도 회전했을 때 원래 행렬과 같아야 한다. 예를 들어 8은 자기 자신과 점대칭이고, 6과 9는 서로 점대칭이다.
재현이는 카드의 위치를 바꾸고 싶지 않으므로, 각 카드를 원래 자리에서 돌리기만 해서 행렬을 점대칭으로 만드는 것이 목표이다.

그림 2. 카드 두 장을 돌리자 점대칭이 되었다.
마법 행렬을 만들기 위해 돌려야 하는 카드 수의 최솟값을 구하라.
입력
첫째 줄에 두 정수 , 이 주어진다. ()
다음 개의 줄에는 각 카드에 적힌 숫자를 나타내는 길이 의 문자열이 주어진다. 각 문자는 6, 7, 8, 9 중 하나임이 보장된다.
출력
마법 행렬을 만들기 위해 돌려야 하는 카드 수의 최솟값을 첫째 줄에 출력한다. 마법 행렬을 만들 수 없다면 "-1"을 출력한다. (따옴표 제외)