# 1916 재귀힘수
# import sys
# sys.setrecursionlimit(10**8)
#
# memo = {1: 1, 2: 1}
#
#
# def rec(x):
# if x in memo:
# return memo[x]
# memo[x] = (rec(x - 1) + rec(x - 2)) % 10009
# return memo[x]
#
#
# n = int(input())
# print(rec(n))
# n = int(input())
#
#
# def rec(n):
# if (n < 1):
# return '0'
# elif (n == 1):
# return '1'
# if (n % 2 == 0):
# return rec(n // 2) + '0'
# elif (n % 2 == 1):
# return rec(n // 2) + '1'
#
# print(rec(n))
#
# import sys
#
# sys.setrecursionlimit(10**8)
#
#
# def rec(k):
# print(k)
#
# if k == 1:
# return 1
#
# if k % 2 == 1:
# return rec(3*k+1)
#
# else:
# return rec(k//2)
#
#
# n = int(input())
# rec(n)
# import sys
# sys.setrecursionlimit(10**8)
#
#
# def rec(k):
# if k == 1:
# return print(k)
#
# if k % 2:
# rec(3*k+1)
#
# else:
# rec(k//2)
# return print(k)
#
# n = int(input())
# rec(n)
#
# import sys
# sys.setrecursionlimit(10**8)
#
#
# n = int(input())
#
# def rec(k):
# if k == 1:
# return '*'
# else:
# return rec(k-1) + '\n' + '*' * k
#
#
# print(rec(n))
# import sys
# sys.setrecursionlimit(10**8)
#
# memo = {1: 1, 2: 1}
#
#
# def rec(x):
# if x in memo:
# return memo[x]
# memo[x] = (rec(x - 1) + rec(x - 2)) % 10009
# return memo[x]
#
#
# n = int(input())
# print(rec(n))
#
#
r, c = map(int, input().split())
# matrix = [[0] for i in range(r) for j in range(c)]
memo = {1: 1}
def rec(k):
if k in memo:
return memo[k]
memo[k] = rec(k-1)*2
return memo[k]