#!/usr/bin/env python3
# آلة افتراضية صغيرة تتحقق من الفلاق عبر برنامج bytecode. اعكسها.
import sys
K1 = [37, 50, 63, 76, 89, 102, 115, 128, 141, 154, 167, 180, 193, 206, 219, 232, 245, 2, 15, 28, 41, 54, 67, 80, 93, 106, 119, 132, 145, 158, 171, 184, 197, 210, 223, 236]
K2 = [7, 8, 11, 16, 23, 32, 43, 56, 71, 88, 107, 128, 151, 176, 203, 232, 7, 40, 75, 112, 151, 192, 235, 24, 71, 120, 171, 224, 23, 80, 139, 200, 7, 72, 139, 208]
TARGET = [243, 107, 203, 58, 34, 121, 66, 137, 200, 10, 241, 170, 201, 170, 122, 52, 252, 44, 197, 174, 167, 152, 88, 186, 4, 60, 158, 182, 88, 193, 202, 148, 237, 255, 50, 11]
# bytecode: 0=LOAD_IN,1=XOR_K1,2=ADD_K2,3=ROTL3,4=CMP  (يُنفَّذ لكل موضع i)
PROG = [0, 1, 2, 3, 4]
def rotl(v, n): return ((v << n) | (v >> (8 - n))) & 0xff
def run(inp):
    if len(inp) != len(TARGET): return False
    for i in range(len(inp)):
        acc = 0
        for op in PROG:
            if op == 0: acc = inp[i]
            elif op == 1: acc ^= K1[i]
            elif op == 2: acc = (acc + K2[i]) & 0xff
            elif op == 3: acc = rotl(acc, 3)
            elif op == 4:
                if acc != TARGET[i]: return False
    return True
g = (sys.argv[1] if len(sys.argv) > 1 else input("flag> ")).encode()
print("ACCESS GRANTED" if run(g) else "ACCESS DENIED")
