key = 811589153 numbers = [int(i) * key for i in open("input.txt", "r").read().split()] idx = [i for i in range(len(numbers))] def mix(numbers, idx): for i in range(len(idx)): index = idx.index(i) n = numbers[index] if n == 0: continue new_index = index + n if abs(new_index) > len(numbers) - 1: new_index = new_index % (len(numbers) - 1) if new_index == 0: new_index = len(numbers) - 1 elif new_index == len(numbers) - 1: new_index = 0 numbers.pop(index) idx.pop(index) numbers.insert(new_index, n) idx.insert(new_index, i) # idx = idx[numbers.index(0) :] + idx[: numbers.index(0)] return numbers, idx for i in range(10): numbers, idx = mix(numbers, idx) rotated = numbers[numbers.index(0) :] + numbers[: numbers.index(0)] rest = [x % len(rotated) for x in [1000, 2000, 3000]] print(sum([rotated[r] for r in rest]))