

'''
# 19 №27802
# 1 куча камней (неудачный ход проигравшего)
# m - предельное количество ходов, с - текущий ход
# данная функция определяет возможность выигрыша за m ходов
def f(s,c,m):
    #если игра окончена то текущий ход должен иеметь четность заданного кол-ва ходов
    if s>=68:
        return c%2 == m%2
    if s< 68 and c==m:
        return 0

    h = [f(s+1, c+1,m),f(s+2, c+1,m),f(s*5, c+1,m)]
    return any(h) if (c+1)%2 == m%2 else any(h)

for s in range(1,68):
    for m in range(1,5):
        if f(s,0,m):
            if m==2:
                print(s,m)
            break
'''

# 20
def f(s,c,m):
   if s>=68:
        return c%2 == m%2
   if s< 68 and c==m:
        return 0

   h = [f(s+1, c+1,m),f(s+4, c+1,m),f(s*5, c+1,m)]
   return any(h) if (c+1)%2 == m%2 else all(h)

for s in range(1,68):
    for m in range(1,5):
        if f(s,0,m):
            if m==3:
                print(s,m)
            break

# 21
def f(s,c,m):
   if s>=68:
        return c%2 == m%2
   if c==m:
        return 0

   h = [f(s+1, c+1,m),f(s+4, c+1,m),f(s*5, c+1,m)]
   return any(h) if (c+1)%2 == m%2 else all(h)

for s in range(1,68):
    for m in range(1,5):
        if f(s,0,m):
            if m==4 or m==2:
                print(s,m,)
            #break
    print()
#ответ 8