Infinite Chess

题意翻译

一个八行、无数列的棋盘。行的编号为 $1$ 到 $8$ ,列的编号为所有整数 **(包括负数)**。棋盘上有一个黑王和一些白棋。最初黑王位于 $(x_s,y_s)$ ,要到达 $(x_t,y_t)$。 棋子根据以下条件移动: - 每轮黑王根据**移动规则**移动一步。 - 黑王不能移动到被白棋占据的格子。 - 黑王不能移动到**被攻击**的格子。 - 白棋从不移动。 一个格子能被白棋根据**移动规则**用一步移动到,则称该格子“**被攻击**”。 **移动规则**如下(同国际象棋)。 - 王(K)能在水平、竖直或对角线方向移动一格。 - 车(R)能在水平或竖直方向移动任意格。 - 象(B)能在对角线方向移动任意格。 - 后(Q)能在水平、竖直或对角线方向移动任意格。 - 马(N)能移动到不在同一行、列和对角线上的最近的正方形,且不会被其他棋子阻挡(即马走日但不存在蹩马腿)。 - 每个格子最多只能有一个棋子,且除马以外的所有棋子都会被其他棋子挡住。 - 任何棋子不能离开棋盘。 棋盘上每种白棋可以有任意个。棋盘上没有兵。 求黑王在不违反规则的情况下到达终点的最小步数。 输入保证每个格子最多一个棋子、黑王的起点与终点不同且都没有被白棋占据或被攻击。

题目描述

The black king lives on a chess board with an infinite number of columns (files) and $ 8 $ rows (ranks). The columns are numbered with all integer numbers (including negative). The rows are numbered from $ 1 $ to $ 8 $ . Initially, the black king is located on the starting square $ (x_s, y_s) $ , and he needs to reach some target square $ (x_t, y_t) $ . Unfortunately, there are also white pieces on the board, and they threaten the black king. After negotiations, the white pieces agreed to let the black king pass to the target square on the following conditions: - each turn, the black king makes a move according to the movement rules; - the black king cannot move to a square occupied by a white piece; - the black king cannot move to a square which is under attack by any white piece. A square is under attack if a white piece can reach it in one move according to the movement rules; - the white pieces never move. Help the black king find the minimum number of moves needed to reach the target square while not violating the conditions. The black king cannot leave the board at any time. The black king moves according to the movement rules below. Even though the white pieces never move, squares which they can reach in one move are considered to be under attack, so the black king cannot move into those squares. Below are the movement rules. Note that the pieces (except for the knight) cannot jump over other pieces. - a king moves exactly one square horizontally, vertically, or diagonally. - a rook moves any number of vacant squares horizontally or vertically. - a bishop moves any number of vacant squares diagonally. - a queen moves any number of vacant squares horizontally, vertically, or diagonally. - a knight moves to one of the nearest squares not on the same rank, file, or diagonal (this can be thought of as moving two squares horizontally then one square vertically, or moving one square horizontally then two squares vertically — i. e. in an "L" pattern). Knights are not blocked by other pieces, they can simply jump over them. There are no pawns on the board. ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1765I/ba9906dc29bd550b495cfec3cf65ba1929dd7c80.png) King and knight possible moves, respectively. Dotted line shows that knight can jump over other pieces. ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1765I/91042dc46fb92993448c908bdcb51af585b72aab.png) Queen, bishop, and rook possible moves, respectively.

输入输出格式

输入格式


The first line contains two integers $ x_s $ and $ y_s $ ( $ 1 \le x_s \le 10^8 $ ; $ 1 \le y_s \le 8 $ ) — the starting coordinates of the black king. The second line contains two integers $ x_t $ and $ y_t $ ( $ 1 \le x_t \le 10^8 $ ; $ 1 \le y_t \le 8 $ ) — the coordinates of the target square for the black king. The third line contains one integer $ n $ ( $ 0 \le n \le 2000 $ ) — the number of white pieces on the board. Then $ n $ lines follow, the $ i $ -th line contains one character $ t_i $ and two integers $ x_i $ and $ y_i $ ( $ 1 \le x_i \le 10^8 $ ; $ 1 \le y_i \le 8 $ ) — the type and the coordinates of the $ i $ -th white piece. The types of pieces are represented by the following uppercase Latin letters: - K — king - Q — queen - R — rook - B — bishop - N — knight There can be any number of white pieces of any type listed above on the board, for example, $ 3 $ white kings or $ 4 $ white queens. There are no pawns on the board. Additional constrains on the input: - no square is occupied by more than one white piece; - the starting square for the black king is different from the square he wants to reach, and neither of these two squares is occupied or is under attack by any white piece.

输出格式


Print one integer — the minimum number of moves needed for the black king to reach the target square while not violating the conditions, or $ -1 $ if it is impossible.

输入输出样例

输入样例 #1

1 8
7 8
2
N 4 8
B 4 6

输出样例 #1

10

输入样例 #2

1 1
1 5
2
K 1 3
R 2 3

输出样例 #2

6

输入样例 #3

2 2
6 4
1
Q 4 3

输出样例 #3

-1

说明

The image below demonstrates the solution for the second example. Here, the letters K, R, s, and t represent the white king, the white rook, the starting square, and the target square, respectively. Bold crosses mark the squares which are under attack by the white pieces. Bold dots show the shortest path for the black king. ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1765I/3f349963b3ee29e9f77a6724908f8fe3d314c2f8.png)