'''
Данное задание можно решать ручками через формулы, но давайте будем честными: прога никогда не ошибается в отличие от человека)
'''
'''
Что нужно знать?
and ----> ∧
or  ----> v
→   ----> <=  P.S. подумайте почему
=   ----> ==
≠   ----> !=
ДЕЛ ----> %
/  -----> //  округляется в меньшую сторону. 5//2==2 

https://letpy.com/handbook/operator-priorities/

'''





''' Ничего нового, так же переписываем прогу. &&&&&. P.S. знак там же, где и 7 ?
ЛИБО, не мучайте себе голову и пишите and, как по стандарту'''


print('>>>>>>')
#3519 К.Ю.Поляков / https://prnt.sc/1a7w958
'''
Введём выражение M & K, обозначающее поразрядную конъюнкцию M и K (логическое «И»между
соответствующими битами двоичной записи). Определите наименьшее натуральное число A,
такое что выражение

(( (X & 13 ≠ 0) ∨ (X & A = 0)) → (X & 13 ≠ 0)) ∨ (X & A ≠ 0) ∨ (X & 39 = 0)
тождественно истинно (то есть принимает значение 1 при любом натуральном значении переменной X)? 
'''

def f(X, A):
    return  (( (X and 13 != 0) or (X and A == 0)) <= (X and 13 != 0)) or (X and A != 0) or (X and 39 == 0)

for a in range(1, 13*39+1):
    ok = True
    for x in range(1, (13*39+1)*10):
        if not f(x, a):
            ok = False
            break
    if ok == True:
        print(a)
        break
