You are given an grid with blocked squares and the others open. From an open square, you may move to any other open square that shares an **edge** with your current square. For queries of integers , please determine whether there is a path from to .

#### Constraints

For all subtasks:

Each given blocked square is unique, and for all queries the squares and will not be blocked.

##### Subtask 1 [20%]

##### Subtask 2 [80%]

No additional constraints.

#### Input Specification

The first line will contain integers , , , and .

The next lines will each contain integers and , representing that square is blocked.

The following lines will each contain integers , representing a query from to .

#### Output Specification

For each query, output one line containing `YES`

if it is possible to reach from , or `NO`

otherwise.

#### Sample Input 1

```
5 5 11 1
2 2
4 2
3 2
2 3
5 2
3 1
1 5
3 5
2 5
4 5
4 4
1 1 5 5
```

#### Sample Output 1

`YES`

#### Explanation for Sample 1

The following is a diagram for the grid given in Sample 1 (`.`

marks open squares, while `#`

marks blocked squares):

```
....#
.##.#
##..#
.#.##
.#...
```

It can be shown that there is a path from to in the grid above.

#### Sample Input 2

```
5 5 9 3
5 1
1 2
1 5
3 2
2 3
5 3
3 3
3 5
4 4
1 1 5 5
2 1 4 3
2 5 2 5
```

#### Sample Output 2

```
NO
YES
YES
```

#### Explanation for Sample 2

The following is a diagram for the grid given in Sample 2 (`.`

marks open squares, while `#`

marks blocked squares):

```
.#..#
..#..
.##.#
...#.
#.#..
```

## Comments