Problem:
 Score : 200 points    Problem Statement 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 .        Sample Input 1 2 2 2      Sample Output 1 Yes  Press the buttons in the order of the first row, the first column.       Sample Input 2 2 2 1      Sample Output 2 No       Sample Input 3 3 5 8      Sample Output 3 Yes  Press the buttons in the order of the first column, third column, second row, fifth column.       Sample Input 4 7 9 20      Sample Output 4 No

Solution (Python):
N,M,K= map(int, raw_input().split())
flag=0

for x in range(N+1):
    for y in range(M+1):
        if M*x+N*y-2*x*y == K:
            print 'Yes'
            flag=1
            break
        else:
            continue
    if flag==1:
        break
if flag==0:
    print 'No'

Solution (Python):
N, M, K = map(int, input().split())

flag = False

for i in range(N+1):
    for j in range(M+1):
        if flag:
            break
        if M*i+N*j-i*j*2==K:
            flag = True
    if flag:
        break

if flag:
    print("Yes")
else:
    print("No")

Solution (Python):
import numpy as np

N, M, K = (int(i) for i in input().split())
ans = False
for s in range(N + 1):
  for t in range(M + 1):
    if(s * M + t * N - s * t * 2 == K):
      ans = True
      break
  if(ans):
    break
if(ans):
  print("Yes")
else:
  print("No")

Solution (Python):
N,M,K = map(int,input().split())

for n in range(N+1):
   for m in range(M+1):
       if n*M + N*m - 2*n*m == K:
           print("Yes")
           exit()
print("No")

Solution (Python):
N, M, K = map(int, input().split())

for r in range(N + 1):
    a = K - r * M
    b = N - 2 * r
    if b != 0 and a % b == 0 and 0 <= a // b <= M:
        print('Yes')
        exit()

print('No')

Solution (Python):
N, M, K = map(int, input().split())

for r in range(N + 1):
    for c in range(M + 1):
        if (N - r) * c + r * (M - c) == K:
            print('Yes')
            exit()

print('No')

Solution (Python):
import math,string,itertools,fractions,heapq,collections,re,array,bisect,sys,random,time,copy,functools

sys.setrecursionlimit(10**7)
inf = 10**20
eps = 1.0 / 10**15
mod = 10**9+7

def LI(): return [int(x) for x in sys.stdin.readline().split()]
def LI_(): return [int(x)-1 for x in sys.stdin.readline().split()]
def LF(): return [float(x) for x in sys.stdin.readline().split()]
def LS(): return sys.stdin.readline().split()
def I(): return int(sys.stdin.readline())
def F(): return float(sys.stdin.readline())
def S(): return input()

def main():
    n,m,k = LI()

    for i in range(n+1):
        t = m*i
        for j in range(m+1):
            if t + (n-i)*j - (i)*j == k:
                return 'Yes'
    return 'No'


print(main())

Solution (Python):
import sys
def calc(a,b,c,d):
    return a*b + c*d
N, M, K = map(int, sys.stdin.readline().strip().split())
if N*M / 2 < K:
    K = N*M -K
for n in xrange(N+1):
    for m in xrange(M+1):
        if calc(n,m,N-n,M-m) == K:
            print 'Yes'
            exit(0)
print 'No'

Solution (Python):
import sys
M,N,K = map(int,input().split())
if N > M:
    tmp = M
    M = N
    N = tmp
for i in range(N+1):
    for j in range(M+1):
        if M*i + N*j - 2*i*j == K:
            print('Yes')
            sys.exit()
 
print('No')

Solution (Python):
def k_judge(n, m, k):
    for i in range(n+1):
        for j in range(m+1):
            if i*(m-j)+j*(n-i) == k:
                return True
    return False


def main():
    n, m, k = map(int, input().split())
    if k_judge(n, m, k):
        print("Yes")
    else:
        print("No")
        

if __name__ == "__main__":
    main()

Solution (Python):



from itertools import product

if __name__ == "__main__":
    N, M, K = map(int, raw_input().split())
    success = False
    for	n, m in	product(range(N+1), range(M+1)):
        if n*M + m*N - 2*n*m == K:
            success = True
            break
    if success:
        print "Yes"
    else:
        print "No"

Solution (Python):
from itertools import product
n,m,k=map(int,input().split())
for i,j in product(range(n+1),range(m+1)):
    if i*m+j*n-2*i*j==k:
        print('Yes')
        break
else:
    print('No')

Solution (Python):
N, M, K = map(int, input().split())


def solve(N, M, K):
    for i in range(N+1):
        for j in range(M+1):
            blackNum = i*M + j*N - 2*i*j
            if K == blackNum:
                return "Yes"
    return "No"

print(solve(N, M, K))

Solution (Python):
n, m, k = map(int,input().split())

black = 0
for i in range(n + 1):
    for j in range(m + 1):
        black = m * i + n * j - 2 * i * j
        if black == k:
            print("Yes")
            exit()

print("No")

Solution (Python):
n, m, k = [int(x) for x in input().split()]

flag = False

for i in range(n+1):
    for j in range(m+1):
        if (n - i) * (m - j) + i * j == k:
            flag = True
            break       
        else:
            continue
        break

if flag:
    print('Yes')
else:
    print('No')

Solution (Python):
N, M, k = tuple(int(i) for i in input().split(' '))
ans = 'No'
for a in range(N + 1):
    for b in range(M + 1):
        if M * a + N * b - 2 * a * b == k:
            ans = 'Yes'
            break
print(ans)

Solution (Python):
n,m,k=map(int,input().split())
for i in range(n+1):
	for j in range(m+1):
		if i*m+j*n-2*i*j==k:
			print("Yes")
			quit()
print("No")

Solution (Python):
def main():
    n, m, k = map(int, raw_input().split(" "))
    for i in range(0, n + 1):
        for j in range(0, m + 1):
            a = j
            b = i
            if b * m + a * n - 2 * a * b == k:
                return "Yes"
    return "No"

if __name__ == '__main__':
    m = main()
    print m

Solution (Python):
N,M,K = list(map(int,input().split()))

res = 'No'

for i in range(N+1):
    for j in range(M+1):
        if i*(M-j) + j*(N-i) == K:
            res = 'Yes'
            break

print(res)

Solution (Python):
def i1():
 return int(input())
def i2():
 return [int(i) for i in input().split()]

[n,m,k]=i2()
s="No"


for i in range(m+1):
    for j in range(n+1):
      if i*n+j*m-i*j*2==k:
          s="Yes"
print(s)

Solution (Python):
def solve():
    N, M, K = list(map(int, input().split(" ")))

    for n in range(N +  1):
        for m in range(M + 1):
            if (M - m) * n + (N - n) * m == K:
                print("Yes")
                return

    print("No")


solve()

Solution (Python):
def solve():
    n, m, k = map(int, input().split())
    for i in range(n + 1):
        selected = m * i
        for j in range(m + 1):
            if selected + (n - i * 2) * j == k:
                print("Yes")
                return
    print("No")

if __name__=="__main__":
    solve()

Solution (Python):
if __name__ == '__main__':
    N, M, K = map(int, raw_input().split() )
    ans = 0

    for a in xrange(N+1):
        for b in xrange(M+1):
            if (((N-a) * b + a * (M - b)) == K):
                ans = 1

    if ans == 1:
        print "Yes"
    else:
        print "No"

Solution (Python):
N,M,K = map(int,input().strip().split())
def judge(N,M,K):
    if K > N * M or K < 0:
        return False
    for n in range(0, N + 1):
        for m in range(0, M + 1):
            if n * M + m * N - 2*m * n == K:
                return True
    return False
if judge(N, M, K):
    print("Yes")
else:
    print("No")

Solution (Python):
nums = [int(x) for x in input().split()]
N,M,K = nums[0],nums[1],nums[2]
 
for k in range(N+1):
	for l in range(M+1):
		if k * (M - l) + l * (N-k) == K:
			print("Yes")
			exit(0)
print("No")

Solution (Python):
N, M, K = [int(i) for i in input().split()]
for m in range(M+1):
    for n in range(N+1):
        if  (M - m) * n + (N - n) * m == K:
            print('Yes')
            exit()
print('No')

Solution (Python):
n,m,k = map(int,input().split())
flg = False
for i in range(n + 1):
    for j in range(m + 1):
        if m*i + n*j - i*j*2 == k:
            flg=True
if flg:
    print('Yes')
else:
    print("No")

Solution (Python):
N,M,K= (int(i) for i in input().split())  
ok=0

for j in range(M+1):
 for i in range(N+1):
  if j*N+i*(M-2*j)==K or i*M+j*(N-2*i)==K:
    ok=1
 
if ok==0:
 print("No")
else:
 print("Yes")

Solution (Python):
N,M,K= (int(i) for i in input().split())  
ok=0

for j in range(M+1):
 for i in range(N+1):
  if j*N+i*M-2*i*j==K :

       ok=1

if ok==0:
 print("No")
else:
 print("Yes")

Solution (Python):
import sys
import socket

hostname = socket.gethostname()

if hostname == 'F451C':
    sys.stdin = open('b1.in')


def read_int_list():
    return list(map(int, input().split()))


def read_str_list():
    return input().split()


def read_int():
    return int(input())


def read_str():
    return input()


def main():
    n, m, k = read_int_list()

    for i in range(m + 1):
        for j in range(n + 1):
            if k == (m - i) * j + (n - j) * i:
                print('Yes')
                return

    print('No')


main()

Solution (Python):
hoge = [int(x) for x in input().split()]
N = hoge[0]
M = hoge[1]
K = hoge[2]
frag = False
foo = []
tmp = 0
for i in range(N):
    tmp += M
    foo.append(tmp)
    if foo[-1] == K:
        frag = True
for i in range(len(foo)):
    for j in range(M):
        ii = i+1
        foo[i] -= ii
        foo[i] += (N-ii)
        if foo[i] == K:
            frag = True
            break

    if frag == True:
        break

if frag == True:
    print("Yes")
else:
    print("No")

Solution (Python):
N,M,K=map(int,input().split())
isYes=False
for n in range(N+1):
    for m in range(M+1):
        if(N*m+M*n-2*n*m==K and not isYes):
            print('Yes')
            isYes=True
if(not isYes):
    print('No')

Solution (Python):
n,m,c=map(int,input().split())
f=False
for i in range(n+1):
	for j in range(m+1):
		if(i*(m-j)+j*(n-i)==c):
			f=True
			break
print("Yes" if f else "No")

Solution (Python):

def calc(n, m, b_n, b_m):
	return m * b_n + n * b_m - b_n * b_m * 2

def sub():
	n, m, k = list(map(int, input().split()))
	for i1 in range(n + 1):
		for i2 in range(m + 1):
			if calc(n, m, i1, i2) == k:
				return "Yes"
	return "No"

def main():
	print(sub())

if __name__ == '__main__':
	main()

Solution (Python):
N, M, K = list(map(int, input().split()))






b = int(N*M/2)
if N*M % 2 == 1:
    b += 1

al = set([])
for i in range(M + 1):
    for j in range(N + 1):
        a = i*(N - j) + j*(M - i)
        if a <= b:
            al.add(a)
            al.add(N*M - a)

if K in al:
    print("Yes")
else:
    print("No")

Solution (Python):
def solution():
	n,m,k = map(int,input().split(' '))
	for i in range(0,m+1):
		for j in range(0,n+1):
			if i*n+j*m-2*i*j == k:
				return True

	return False



print('Yes' if solution() else 'No')

Solution (Python):

n, m, k = map(int, input().split())
factor = []
factor.append(n*m)



factor.append((n//2)*(m//2)*2 + ((((n%2)*m+(m%2)*n)-1)//2 + 1))
for tmp in range(1,n+1):
    for tmp2 in range(1, m+1):
        factor.append(tmp*tmp2 + (n-tmp)*(m-tmp2))
factor = list(set(factor))
if k in factor or k%n == 0 or k%m == 0:
    print("Yes")
else:
    print("No")

Solution (Python):
N, M, K = list(map(int, input().split()))
if K > N * M // 2: K = N * M - K
can = {k * (N - l) + l * (M - k) for k in range(M//2 + 1) for l in range(N//2 + 1)}
print("Yes") if K in can else print("No")

Solution (Python):
n,m,k=map(int,input().split())
from itertools import product

print('Yes' if any(abs(a*m+b*n-2*a*b)==k for a,b in product(range(n+1),range(m+1))) else 'No')

Solution (Python):
from sys import stdin
ans = 'No'
n,m,k = map(int,stdin.readline().split())
for i in xrange(n+1):
    for j in xrange(m+1):
        if i*m - 2*j*i + j*n==k:
            ans = 'Yes'
print ans

Solution (Python):
import sys
n, m, k = map(int, input().split())

for x in range(n + 1):
    for y in range(m + 1):
        if m * x + n * y - x * y * 2 == k:
            print("Yes")
            sys.exit()
print("No")

Solution (Python):
N, M, K = map(int, input().split())

ans = "No"

for i in range(N+1):
    for j in range(M+1):
        b = i * M
        b -= i*j
        b += (N-i)*j
        if b == K:
            ans = "Yes"

print(ans)

Solution (Python):
import numpy as np

n, m, k = map(int, input().split(" "))

flag = 0
for i in range(n + 1):
    for j in range(m + 1):
        if(i * m - i * j + j * n - i * j == k):
            flag = 1
        if(n * m - (i * m - i * j + j * n - i * j) == k):
            flag = 1

if(flag == 1):
    print("Yes")
else:
    print("No")

Solution (Python):
N, M, K = map(int, input().split())

def proc():
    count = 0
    m = 0

    data = [M*n for n in range(N)]
    for i in range(M):
        if K in data:
            return True
        data = [x + N - 2 * idx for idx, x in enumerate(data)]
    if K in data:
        return True
    return False

print('Yes' if proc() else 'No')

Solution (Python):
N, M, K = map(int, input().split())		


ans='No'
for x in range(N+1):
	for y in range(M+1):
		if (N-x)*y + x*(M-y) == K:
			ans = 'Yes'
			break;

print(ans)

Solution (Python):
N, M, K = map(int,input().split())

ok = False
for n in range(N+1):
    for m in range(M+1):
        
        black = n*M+m*N-n*m*2
        if black == K:
            print("Yes")
            ok = True
            break
    if ok:break
if ok == False:
    print("No")

Solution (Python):
h, w, k = map(int, raw_input().split())
for i in xrange(h+1):
    for j in xrange(w+1):
        if k == i * w + j * h - i * j * 2:
            print "Yes"
            quit()
print "No"

Solution (Python):
N,M,K = list(map(int,input().split()))

def f(N,M,K):
    for i in range(N+1):
        for j in range(M+1):
            if i*(M-j)+j*(N-i)==K:
                return "Yes"
    return "No"

print(f(N,M,K))

Solution (Python):
import sys
N,M,K = map(int, input().split())

for i in range(N+1):
    for j in range(M+1):
        if i * M + j * N - 2 * i * j == K:
            print('Yes')
            sys.exit()

print('No')

Solution (Python):
def main():
    N, M, K = map(int, input().split())

    for i in range(N + 1):
        for j in range(M + 1):
            black = i * M - j * i + j * (N - i)
            if K == black:
                print('Yes')
                return
    else:
        print('No')

main()

Solution (Python):
def read_int_list():
    return list(int(i) for i in input().split())

n,m,k = read_int_list()

ans = "No"
flag = False
for i in range(0,n+1):
    for j in range(0,m+1):
        black = (i*m + j*n) - (i*j)*2
        if black == k:
            ans = "Yes"
            flag = True
            break
    if flag:
        break
print(ans)

Solution (Python):
inputs = input().split()
N = int(inputs[0])
M = int(inputs[1])
K = int(inputs[2])
a = [[0 for y in range(M)] for x in range(N)]

flag = False

for i in range(N + 1):
    for j in range(M + 1):
        if M*i + N*j - (j)*(i)*2 == K:
            flag = True

if flag or (N == 1 and M == 1):
    print('Yes')
else:
    print('No')

Solution (Python):

n,m,k = list(map(int, input().split()))

f = False

for i in range(n//2+2):
    for j in range(m//2+2):
        t = i*j + (n-i)*(m-j)
        if ( t==k or n*m-t==k ):
            f = True
            break
if f:
    print("Yes")
else:
    print("No")

Solution (Python):



N,M,K = map(int,input().split(" "))

tureList = []

for i in range(N+1):
	for j in range(M+1):
		tureList.append((i*M) + (j*N) - 2*(i*j))

if K in tureList:
	print("Yes")

else:
	print("No")

Solution (Python):
N, M, K = map(int, input().split())
 
flag = False
for n in range(M + 1):
    for m in range(N + 1):
        if n * N + m * (M - n * 2) == K:
            flag = True
 
if flag:
    print('Yes')
else:
    print('No')

Solution (Python):

N, M, K = map(int, input().split())

def foo():
	for x in range(0, N + 1):
		for y in range(0, M + 1):
			if M * x + N * y - 2 * x * y == K:
				print("Yes")
				return
	print("No")

foo()

Solution (Python):



from __future__ import division, print_function
import sys


def main():
    n, m, k = map(int, sys.stdin.readline().strip().split(" "))
    nums = {0}
    for i in range(0, n + 1):
        for j in range(0, m + 1):
            i_ = n - i
            nums.add(m * i + i_ * j - i * j)
    
    print("Yes" if k in nums else "No")


if __name__ == '__main__':
    main()

Solution (Python):
if __name__ == '__main__':
    N, M, K = list(map(int, input().split()))

    ans = "No"
    for kn in range(0, N + 1):
        for km in range(0, M + 1):
            
            if M * kn + N * km - 2 * (km * kn) == K:
                ans = "Yes"

    print(ans)

Solution (Python):

def get_ln_inputs():
    return input().split()


def get_ln_int_inputs():
    return list(map(int, get_ln_inputs()))


def get_blacks(n, m, N, M):
    return (n * m) + (N - n) * (M - m)

def main():
    N, M, K = get_ln_int_inputs()

    found = False
    for n in range(N + 1):
        for m in range(M + 1):
            if (get_blacks(n, m, N, M) == K):
                print("Yes")
                return
    print("No")
    return


main()

Solution (Python):



n, m, k = (int(x) for x in input().split())

for a in range(m + 1):
    for b in range(n + 1):
        if (n * a + m * b - 2 * a * b == k):
            print('Yes')
            exit()
print('No')

Solution (Python):
N, M, K = map(int, input().split())




if K%N == 0 or K%M == 0:
    print("Yes")
    
else:
    flag = False
    for n in range(1, N+1):
        if flag == True:
            break
            
        for m in range(1, M+1):
            if n*(M-m) + (N-n)*m == K:
                print("Yes")
                flag = True
                break
                
    
    if flag == False:
        print("No")

Solution (Python):
def solve(n, m, k):
    for i in range(n + 1):
        for j in range(m + 1):
            if i * j + (n - i) * (m - j) == k:
                return 'Yes'
    return 'No'


print(solve(*map(int, input().split())))

Solution (Python):
N , M , K = input().split()
N = int(N)
M = int(M)
K = int(K)
OK = False


for n in range(N + 1):
    if N == 2*n : 
        if K == N*M / 2 : OK = True
    else :     
        flag =  (K - M * n) % (N - 2*n) == 0
        if(flag):
            m = (K - M * n) / (N - 2*n)
            if( (m >= 0) & (m <= M) ) : 
                OK = True
            
if(OK) : print("Yes")
else : print("No")

Solution (Python):
n ,m, k = [int(e) for e in input().split()]

def search(n, m, k):
    flag = False
    for n_rows in range(n+1):
        if flag:
            break
        for n_cols in range(m+1):
            blacks = n_rows * m + n_cols * n - 2*n_rows * n_cols
            if blacks == k:
                flag = True
                break
    return flag
if search(n, m, k):
    print("Yes")
else:
    print("No")

Solution (Python):
nmk = input().split()
n = int(nmk[0])
m = int(nmk[1])
k = int(nmk[2])

message = "No"
for i in range(m):
    x = int(i)
    if m-2*x == 0:
        y=-1
    else:
        y = (-n*x+k)/(m-2*x)

    if y >= 0 and y <= n and y%1 == 0:
        message="Yes"
        break

print(message)

Solution (Python):
n, m, k = [int(c) for c in input().split(' ')]
possible = 0
for x in range(m+1):
    for y in range(n+1):
        if n*x - y*x + y*(m-x) == k:
            possible = 1
print("Yes" if possible else 'No')

Solution (Python):
n,m,k = map(int,input().split())

anss = []
for i in range(n+1):
    for j in range(m+1):
        ans = n*j + m*i -i*j*2
        anss.append(ans)

if k in anss: print("Yes")
else: print("No")

Solution (Python):
N, M, K = map(int, input().split())

for i in range(N+1):
    for j in range(M+1):
        if N*j + M*i - 2*i*j == K:
            print('Yes')
            exit()

print('No')

Solution (Python):
yes = "Yes"
no = "No"

N, M, K = map(int, input().split())

ans = no
for y in range(N+1):
    for x in range(M+1):
        if N*M - (N-y) * (M-x) - x*y == K:
            ans = yes
            break
print(ans)

Solution (Python):
N, M, K = map(int, raw_input().split(' '))

for n in xrange(N+1):
  for m in xrange(M+1):
    if n*M + m*N - 2*n*m == K:
      print 'Yes'
      exit()

print 'No'

Solution (Python):
N,M,K = map(int,input().split())
def solve():
    for i in range(N+1):
        for j in range(M+1):
            a = i*(M-j) + j*(N-i)
            if a == K:
                return True
    return False

print('Yes' if solve() else 'No')

Solution (Python):
N, M, K = map(int, input().split())


def is_ok():
    for i in range(0, N+1):
        for j in range(0, M+1):
            if (i*j) + ((N-i)*(M-j)) == K:
                return 1


if is_ok():
    print('Yes')
else:
    print('No')

Solution (Python):
N,M,K = map(int,raw_input().split(" "))

def f():
    for i in range(N+1):
        for j in range(M+1):

            nn = j
            mm = i
            if mm*M + nn*N - 2 * mm*nn == K:
                return "Yes"
    return "No"

print f()

Solution (Python):



nmk = raw_input()
nmk = nmk.split()
n,m,k = map(int,nmk)

status = 0

for i in range(m+1):
    for j in range(n+1):
        if n*i + m*j - 2*i*j == k:
            status = 1
            break

if status == 0:
    print "No"
else:
    print "Yes"

Solution (Python):
from math import *


def main():
        n, m, k = map(int, input().split())
        for i in range(n+1):
                for j in range(m+1):
                        if i * m + j * n - 2*i*j == k:
                                print('Yes')
                                return
        print('No')
        

if __name__ == '__main__':
        main()

Solution (Python):
n, m, k = map(int, raw_input().split())

for i in xrange(n+1):
    for j in xrange(m+1):
        if i*m + j*n - 2*i*j == k:
            print 'Yes'
            exit()
print 'No'

Solution (Python):
def f(n,m,k):
 for i in range(n+1):
  for j in range(m+1):
   if (i*m+j*n-2*i*j)==k:
    print("Yes")
    return
 print("No")
 return

a=input().split()
n=int(a[0])
m=int(a[1])
k=int(a[2])
f(n,m,k)

Solution (Python):
def func() :
    n,m,k=map(int,input().split())
    for i in range(n+1) :
        for j in range(m+1) :
            if(i*m + j*n - 2*i*j == k) :
                print('Yes')
                return
    print('No')
func()

Solution (Python):
N, M, K = [int(x) for x in input().split(" ")]

res = False

for n in range(N):
    t1 = K - n * M
    t2 = N - 2 * n
    if t2 == 0:
        if n * M == K:
            res = True
        continue
    if t1 % t2 != 0:
        continue
    m = t1 // t2
    if 0 <= m and m <= M:
        res = True

print("Yes" if res else "No")

Solution (Python):

N, M, K = tuple(map(int, input().split()))

list_ = [M*n for n in range(N+1)]
uni = set()

for n, l in enumerate(list_):
    uni.update([(l - n*m + (N-n)*m) for m in range(M+1)])

if K in uni:
    print("Yes")
else:
    print("No")

Solution (Python):
[N,M,K]= map(int, raw_input().split())
ans=["No","Yes"]
f=0
for m in range(M+1):
    for n in range(N+1):
        if K== m*N+n*M-2*m*n:
            f=1
print ans[f]

Solution (Python):


def main():
    N, M, K = map(int, input().split())

    for m in range(0, M + 1):
        d = (2 * m - M)
        if d == 0:
            n = (K + N * m - N * M)
            if n == 0:
                return "Yes"

        else:
            n = (K + N * m - N * M) / d
            if n - int(n) == 0 and n >= 0 and n <= N:
                return "Yes"
    return "No"

print(main())

Solution (Python):
N, M, K = map(int, input().strip().split(" "))

for i in range(N+1):
    for j in range(M+1):
        if N*j + M*i -i*j*2 == K:
            print("Yes")
            exit(0)

print("No")
exit(0)

Solution (Python):
def solve():
    N, M, K = map(int, raw_input().split()) 

    for i in xrange(N + 1):
        cur = M*i
        if cur > K: break
        for j in xrange(M + 1):
            if cur - i*j + (N - i)*j == K:
                return True
    for i in xrange(M + 1):
        cur = N*i
        if cur > K: break
        for j in xrange(N + 1):
            if cur - i*j + (M - i)*j == K:
                return True

    return False

print "Yes" if solve() else "No"

Solution (Python):
N,M,K =list(map(int,input().split()))

def check():
    for i in range(N+1):
        for j in range(M+1):
            if i*(M)+j*N - 2* i*j == K:
                return True
    return False


print("Yes" if check() else "No")

Solution (Python):
N ,M ,K = map(int, input().split())

for n in range(N+1):
    k = n * M
    for m in range(M+1):
        kk = k + ((N - n) - n) * m
        if kk == K:
            print('Yes')
            exit(0)
print('No')

Solution (Python):
n, m, k = map(int, input().split())
 
ans = "No"
for i in range(n + 1):
    for j in range(m + 1):
        if i * (m - j) + j * (n - i) == k:
            ans = "Yes"
print(ans)

Solution (Python):
N, M, K = map(int, input().split())
for r in range(N + 1):
    black = r * M
    b_c, w_c = r, N - r
    for c in range(M + 1):
        if black - b_c * c + w_c * c == K:
            print("Yes")
            quit()
print("No")

Solution (Python):
N, M, K = map(int, input().split())
res = 'No'
for y in range(N+1):
    for x in range(M+1):
        b = y * M + x * N - 2 * x * y
        if b == K:
            res = 'Yes'
print(res)

Solution (Python):

import heapq
import math
import sys

tmp = input()
N, M, K = [int(a) for a in tmp.split()]

for i in range(N+1):
    for j in range(M+1):
        val = i * (M - j) + j * (N - i)
        if val > K:
            break
        if val == K:
            print('Yes')
            sys.exit()

print('No')

Solution (Python):
import sys
N,M,K=map(int,input().split())
for i in range(N+1):
  for j in range(M+1):
    ans=i*M+j*N-2*i*j
    if ans==K:
      print("Yes")
      sys.exit()
print("No")

Solution (Python):
import sys
import socket

if socket.gethostname() == 'N551J':
    sys.stdin = open('b1.in')


def read_int_list():
    return list(map(int, input().split()))


def read_int():
    return int(input())


def read_str_list():
    return input().split()


def read_str():
    return input()


def solve():
    n, m, k = read_int_list()
    for i in range(n+1):
        for j in range(m+1):
            if i * j + (n - i) * (m - j) == k:
                return 'Yes'
    return 'No'


def main():
    res = solve()
    print(res)


if __name__ == '__main__':
    main()

Solution (Python):
n, m, k = map(int, input().split())

for i in range(1+n):
    for j in range(1+m):
        if i*m + j*n - 2*i*j == k:
            print('Yes')
            exit(0)
print('No')

Solution (Python):

import sys

n, m, k = map(int, input().split())

for a in range(n + 1):
    for b in range(m + 1):
        if k == a*m + n *b - 2 * a * b:
            print("Yes")
            sys.exit(0)


print('No')

Solution (Python):
n,m,k = map(int, input().split())
for i in range(n+1):
    for j in range(m+1):
        if i*j + (n-i)*(m-j) == k:
            print('Yes')
            exit()
print('No')

Solution (Python):
n, m, k = map(int, raw_input().split())
for i in range(0, n + 1):
	for j in range(0, m + 2):
		if i * j + (n - i) * (m - j) == k:
			print 'Yes'
			exit()
print 'No'