package main

import (
	"fmt"
	"os"
)

func main() {
	step := os.Args[1]
	indexMap := make(map[int]int)
	indexMap[0] = 0
	indexMap[14] = 1
	indexMap[1] = 2
	indexMap[3] = 3
	indexMap[7] = 4

	last := 9
	loops := 0
	switch step {
	case "1":
		loops = 2020
	case "2":
		loops = 30000000
	}

	for i := 5; i < loops-1; i++ {
		if x, ok := indexMap[last]; ok {
			indexMap[last] = i
			// fmt.Printf("%d was last seen %d ago\n", last, i-x)
			last = i - x
		} else {
			indexMap[last] = i
			// fmt.Printf("%d has not been seen before\n", last)
			last = 0
		}
	}
	fmt.Println(last)
}