"""
출처:프로그래머스,
https://school.programmers.co.kr/learn/courses/30/lessons/81302?language=python3
"""
# 풀이 과정
def solution(places):
    result = []
    # bfs
    from collections import deque
    flag = False
    for a in places:
        q = []
        dx = [-2, -1, 1, 2, 0, 0, 0, 0, -1, -1, 1, 1]
        dy = [0, 0, 0, 0, -2, -1, 1, 2, 1, -1, 1, -1]
        for c in range(5):
            for d in range(5):
                if a[c][d] == "P":
                    q.append([c, d])
        q = deque(q)
        if len(q) == 0:
            result.append(1)
            continue
        while q:
            e, f = q.popleft()
            flag = False
            for x, y in zip(dx, dy):
                if 0 <= e + x < 5 and 0 <= f + y < 5:
                    if a[e + x][f + y] == "P":
                        # case1 ## 중요 케이스
                        if abs(x) == 2 or abs(y) == 2:
                            if abs(x) == 2 and abs(y) == 0:
                                if x > 0 and a[e + x - 1][f + y] == "X":
                                    continue
                                elif x < 0 and a[e + x + 1][f + y] == "X":
                                    continue
                                else:
                                    print(1)
                                    flag = True
                                    break
                            elif abs(y) == 2 and abs(x) == 0:
                                if y > 0 and a[e + x][f + y - 1] == "X":
                                    continue
                                elif y < 0 and a[e + x][f + y + 1] == "X":
                                    continue
                                else:
                                    print(2)
                                    flag = True
                                    break
                                    # case2 ## 중요 케이스
                        elif abs(x) == 1 and abs(y) == 1:
                            if x == 1 and y == 1:
                                if a[e + x][f] == "X" and a[e][f + y] == "X":
                                    continue
                                else:
                                    flag = True
                                    print(3)
                                    break
                            elif x == 1 and y == -1:
                                if a[e + x][f] == "X" and a[e][f + y] == "X":
                                    continue
                                else:
                                    flag = True
                                    print(4)
                                    break
                            elif x == -1 and y == 1:
                                if a[e + x][f] == "X" and a[e][f + y] == "X":
                                    continue
                                else:
                                    flag = True
                                    print(5)
                                    break
                            elif x == -1 and y == -1:
                                if a[e + x][f] == "X" and a[e][f + y] == "X":
                                    continue
                                else:
                                    flag = True
                                    print(6)
                                    break
                                    # case3
                        elif abs(x) == 1 and abs(y) == 0:
                            flag = True
                            print(7)
                            break
                        # case4
                        elif abs(x) == 0 and abs(y) == 1:
                            flag = True
                            print(8)
                            break
            else:
                continue
            if flag == True:
                break
        if flag == False:
            result.append(1)
        else:
            result.append(0)
    return result