    def perform(self):
        n, m = map(int, input().split())
        x, y, d = map(int, input().split())

        array = []
        
        # 방문한 위치를 저장하기 위한 맵을 생성하여 0으로 초기화
        visited = [[0] * m for _ in range(n)]
        visited[x][y] = 1

        for i in range(n):
            array.append(list(map(int, input().split())))

        # 서, 남, 동, 북 방향 정의
        dx = [0, 1, 0, -1]
        dy = [-1, 0, 1, 0]
        
        # 왼쪽으로 회전
        def turn_left():
            nonlocal d
            d -= 1
            if d == -1:
                d = 3
        
        count = 1
        turn_time = 0

        # 시물레이션 시작
        while True:
            turn_left()
            nx = x + dx[d]
            ny = y + dy[d]

            # 회언한 이후 정면에 가보지 않은 칸이 존재하는 경우 이동
            if visited[nx][ny] == 0 and array[nx][ny] == 0:
                visited[nx][ny] = 1
                x = nx
                y = ny
                count += 1
                turn_time = 0
                continue

            #회전한 이후 정면에 가보지 않은 칸이 없거나 바다인 경우
            else:
                turn_time += 1

            # 네 방향 모두 갈 수 없는 경우
            if turn_time == 4:
                nx = x - dx[d]
                ny = y - dy[d]
                
                # 뒤로 갈 수 있다면 이동하기
                if array[nx][ny] == 0:
                    x = nx
                    y = ny
                # 뒤가 바다로 막혀있는 경우
                else:
                    break
                turn_time = 0

        print(count)

