prog1 = [(i, int(b), *r) for i, b, *r in (tuple(line.split()) for line in iter(input, 'E'))] prog2 = [(i, int(b), *r) for i, b, *r in (tuple(line.split()) for line in iter(input, 'E'))] def swapped(a, b): if a is None: return b, None if b is None: return a, None ai, ap, *ar = a bi, bp, *br = b if bi == 'I': if ap >= bp: a = ai, ap + 1, *ar return b, a if ai != bi and ap == bp: return None, None if bi == 'D': if ap > bp: a = ai, ap - 1, *ar return b, a return a, b def bsort(lst, swapper, i0, i1): if i1 - i0 <= 1: return if i1 - i0 == 2: r = swapper(lst[i0], lst[i0 + 1]) lst[i0] = r[0] lst[i0 + 1] = r[1] m = (i0 + i1) // 2 bsort(lst, swapper, i0, m) bsort(lst, swapper, m, i1) for i in range(m, i1): for j in range(i - 1, i0 - 1, -1): oa, ob = lst[j], lst[j + 1] na, nb = swapper(oa, ob) if (oa, ob) == (na, nb): break lst[j], lst[j + 1] = na, nb # print(prog1) bsort(prog1, swapped, 0, len(prog1)) prog1 = [x for x in prog1 if x is not None] # print(prog1) # print() # print(prog2) bsort(prog2, swapped, 0, len(prog2)) prog2 = [x for x in prog2 if x is not None] # print(prog2) print('10'[prog1 == prog2])