# 入力
a, b = map(int,input().split())
ans = 32**(a-b)
# 出力
print(ans)
# 入力
S = input()
T = input()
# SとTが等しいならYes、それ以降の操作は行わない
if S == T:
print('Yes')
exit()
# 文字列をリスト化する
s = list(S)
t = list(T)
# 1文字目から見ていく
for i in range(len(S)):
if S[i] == T[i]: # もしS、Tのi文字目が等しいなら継続
continue
if i == len(S)-1: # 最初に異なる文字数が文字列の一番最後の文字であるならNo、入れ替える操作は行わずに終了
print('No')
exit()
s[i], s[i+1] = s[i+1], s[i] # 一文字目が見つかった時点で入れ替え、ループは打ち切り:それ以降の文字は見ないで良い
break
if s == t:
# 入れ替えた後のSとTを比較し、一致していればYes、一致していないならばNo
print('Yes')
else:
print('No')
# 入力
N = input() # 今回は文字列で入力
L = list(N) # 文字列をリスト化
# 最大値を答えとして保存
ans = 0
# 2^(Nの桁数)分ループ
for i in range(2**len(N)):
# 数値A、数値Bの変数を文字列として用意
a = ''
b = ''
# bit全探索
for j in range(len(L)):
# もしbitが1ならaグループに、そうでないならbグループに連結する
if ((i >> j) & 1):
a += L[j]
else:
b += L[j]
# もしaグループ、bグループのどちらかが空白ならスキップ
if len(a) == 0 or len(b) == 0:
continue
# a,bをそれぞれリストに直して降順ソート、joinして数値に戻す
a = list(a)
a.sort(reverse=True)
a = int(''.join(a))
b = list(b)
b.sort(reverse=True)
b = int(''.join(b))
# 積を求めて最大値であれば更新
tmp = a*b
ans = max(ans,tmp)
# 出力
print(ans)
from collections import Counter
# 入力
N = int(input())
C = Counter()
for i in range(N):
a, b = map(int, input().split())
start = a
end = a + b
C[start] += 1 # a日目に1人ログイン者が増える
C[end] -= 1 # a+b日目に、1人ログイン者が減る
days = sorted(C.keys()) # 変動のあった日をリストとして取得
ans = [0] * (N+1) # 答えを格納するための配列(1-indexにしたいので、N+1)
prev_day = 0 # 前回人数が変動した日を設定
cnt = 0 # ログインしている人数を設定
for curr_day in days:
# 0人ログインしている日に、「最初人数が変動した日 - 前回人数が変動した日」を足す
ans[cnt] += curr_day - prev_day
cnt += C[curr_day] # ログインしている人数に、「最初人数が変動した日」に何人変動したかを足す
prev_day = curr_day # 最初に人数が変動した日を、前回人数が変動した日として保持しておく
# 出力
print(*ans[1:]) # 0人ログインしている日は出力しないので、「1」から。