JOI 문장

면접 대비

시간 제한1초메모리 제한256 MB

요약
J, O, I로 된 격자에서 최대 한 칸을 바꿀 때 주어진 2 by 2 엠블럼과 일치하는 구역 수의 최댓값을 구합니다.
난이도

보통10점 중 4점

유형
완전 탐색, 행렬
정답자
아직 제출이 없습니다

문제

정보 올림피아드 일본 위원회는 대회를 앞두고 JOI 깃발을 새로 만들려 한다. JOI 깃발은 MM행 NN열의 정사각형 칸으로 이루어지고, 각 칸에는 J, O, I 중 하나가 적혀 있다.

위원회는 JOI 문장도 정해 두었다. JOI 문장은 22행 22열의 정사각형 칸으로 이루어지고, 각 칸에도 J, O, I 중 하나가 있다.

JOI 깃발에 포함된 JOI 문장의 개수는, 깃발 안의 22행 22열 영역 가운데 그 영역의 네 글자가 JOI 문장과 (회전이나 뒤집기 없이) 일치하는 것의 개수다. 서로 겹치는 영역도 각각 따로 센다.

위원회는 기존 JOI 깃발과 한 장의 빈 종이를 가지고 있다. 빈 종이는 깃발의 한 칸 크기이고, J, O, I 중 하나를 적을 수 있다. 다음 두 가지 중 하나만 수행해서 새 깃발을 만든다.

기존 깃발을 그대로 쓴다. 빈 종이는 쓰지 않는다.

빈 종이에 한 글자를 적어 기존 깃발의 한 칸에 붙여, 그 칸만 바꾼다.

새 깃발에 들어 있는 JOI 문장 개수를 최대화하려 한다. 기존 깃발과 JOI 문장이 주어질 때, 가능한 최대 개수를 구한다.

입력

첫 줄에 MM, NN이 주어진다. 다음 MM줄은 각각 NN개의 J, O, I로 이루어진 문자열로 기존 깃발을 나타낸다. 위에서 ii행, 왼쪽에서 jj열 칸은 각 줄의 jj번째 문자다.

그 다음 22줄은 각각 22개의 J, O, I로 이루어진 문자열로 JOI 문장을 나타낸다.

출력

새 깃발에 포함될 수 있는 JOI 문장 개수의 최댓값을 한 줄에 출력한다.

제한

2≤M≤10002 \le M \le 1000

2≤N≤10002 \le N \le 1000

예제3

  1. 예제 1

    입력
    3 5
    JOIJO
    IJOOO
    IIJIJ
    JO
    IJ
    
    예상 출력
    3
    
  2. 예제 2

    입력
    2 6
    JOJOJO
    OJOJOJ
    OJ
    JO
    
    예상 출력
    2
    
  3. 예제 3

    입력
    2 2
    JI
    IJ
    JJ
    JJ
    
    예상 출력
    0