题目描述
Problem statement
There is a rectangular piece of paper divided in a grid with a height of $ H $ squares and a width of $ W $ squares. The integer $i \ times W + j$ is written in the cell of the $ i $ line from the top and the $ j $ column from the left counting from $ 0 $. An example of $ H = 2 and W = 3 $ is shown in the figure below.
<image>
AOR Ika-chan performed the following operations on this paper in order.
- Fold it repeatedly along the dividing line of the square until it reaches the area of $ 1 $ square. The folding lines, mountains and valleys, and the order at this time are arbitrary. You can fold it in any way that does not tear the paper.
- Cut off the $ 4 $ edge and divide it into $H \ times W$ sheets of paper.
- Turn over from the top to create a sequence $ S $ in which the written integers are arranged.
For example, if you fold it and then cut it as shown in the figure below, you will get $ 4, 3, 0, 5, 2, 1 $ as $ S $. In this way, it is possible to fold it so that it can be inserted between them.
<image>
<image>
You received a sequence of $ S $ from AOR Ika-chan. However, I don't trust AOR Ika-chan, so I want to make sure this is the real thing. Write a program that outputs "YES" if there is a paper folding method that matches $ S $, and "NO" if not.
Input constraints
$1 \ le H, W \ le 500$
$ S $ contains integers from $ 0 $ to $H \ times W --1$ in increments of $ 1 $
sample
Sample input 1
14
0 1 2 3
Sample output 1
YES YES
<image>
Sample input 2
twenty three
4 3 0 5 2 1
Sample output 2
YES YES
This is an example in the problem statement.
Sample input 3
14
0 2 1 3
Sample output 3
NO
Sample input 4
twenty two
0 1 3 2
Sample output 4
YES YES
Fold it in half for $ 2 $.
input
$H \ W$
$S_0 \ cdots S_ {HW-1}$
output
Print "YES" or "NO" on the $ 1 $ line.
Example
Input
1 4
0 1 2 3
Output
YES
输入格式
见题面
输出格式
见题面