#!/usr/bin/env python3
# RAWAQ reverse — a tiny VM validates the flag. Understand the ops, then reverse it.
PROG = [1, 0, 2, 92, 3, 17, 4, 31, 1, 1, 2, 92, 3, 17, 4, 28, 1, 2, 2, 92, 3, 17, 4, 30, 1, 3, 2, 92, 3, 17, 4, 56, 1, 4, 2, 92, 3, 17, 4, 78, 1, 5, 2, 92, 3, 17, 4, 78, 1, 6, 2, 92, 3, 17, 4, 65, 1, 7, 2, 92, 3, 17, 4, 78, 1, 8, 2, 92, 3, 17, 4, 69, 1, 9, 2, 92, 3, 17, 4, 20, 1, 10, 2, 92, 3, 17, 4, 70, 1, 11, 2, 92, 3, 17, 4, 75, 1, 12, 2, 92, 3, 17, 4, 57, 1, 13, 2, 92, 3, 17, 4, 70, 1, 14, 2, 92, 3, 17, 4, 63, 1, 15, 2, 92, 3, 17, 4, 78, 1, 16, 2, 92, 3, 17, 4, 73, 1, 17, 2, 92, 3, 17, 4, 70, 1, 18, 2, 92, 3, 17, 4, 54, 1, 19, 2, 92, 3, 17, 4, 54, 1, 20, 2, 92, 3, 17, 4, 78, 1, 21, 2, 92, 3, 17, 4, 20, 1, 22, 2, 92, 3, 17, 4, 66, 1, 23, 2, 92, 3, 17, 4, 78, 1, 24, 2, 92, 3, 17, 4, 72, 1, 25, 2, 92, 3, 17, 4, 64, 1, 26, 2, 92, 3, 17, 4, 58, 1, 27, 2, 92, 3, 17, 4, 63, 1, 28, 2, 92, 3, 17, 4, 78, 1, 29, 2, 92, 3, 17, 4, 50]

def run(flag: str) -> bool:
    b = flag.encode(); acc = 0; ip = 0; good = True
    while ip < len(PROG):
        op = PROG[ip]
        if op == 1:   acc = b[PROG[ip+1]]; ip += 2      # LOAD flag[arg]
        elif op == 2: acc ^= PROG[ip+1];  ip += 2       # XOR imm
        elif op == 3: acc = (acc + PROG[ip+1]) & 0xFF; ip += 2  # ADD imm
        elif op == 4: good &= (acc == PROG[ip+1]); ip += 2      # EQ imm
    return good and len(b) == 30

if __name__ == "__main__":
    import sys
    g = sys.argv[1] if len(sys.argv) > 1 else input("flag> ")
    print("UNLOCKED" if run(g) else "LOCKED")
