#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int main()
{
	scanf("%d%d%d",&n,&m,&k);
	for(int i=0;i<=n;i++)
	  for(int j=0;j<=m;j++)
	  {
		int tmp=i*m+j*n-i*j*2;
		if(tmp==k)
		{
			puts("Yes");
			return 0;
		}
	  }
	puts("No");
	return 0;
}
### Prompt

In CPP, your task is to solve the following problem:

We have a grid with N rows and M columns of squares. Initially, all the squares are white.

There is a button attached to each row and each column. When a button attached to a row is pressed, the colors of all the squares in that row are inverted; that is, white squares become black and vice versa. When a button attached to a column is pressed, the colors of all the squares in that column are inverted.

Takahashi can freely press the buttons any number of times. Determine whether he can have exactly K black squares in the grid.

Constraints

* 1 \leq N,M \leq 1000
* 0 \leq K \leq NM

Input

Input is given from Standard Input in the following format:


N M K


Output

If Takahashi can have exactly K black squares in the grid, print `Yes`; otherwise, print `No`.

Examples

Input

2 2 2


Output

Yes


Input

2 2 1


Output

No


Input

3 5 8


Output

Yes


Input

7 9 20


Output

No

### Response

```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int main()
{
	scanf("%d%d%d",&n,&m,&k);
	for(int i=0;i<=n;i++)
	  for(int j=0;j<=m;j++)
	  {
		int tmp=i*m+j*n-i*j*2;
		if(tmp==k)
		{
			puts("Yes");
			return 0;
		}
	  }
	puts("No");
	return 0;
}
```