package main

import (
	//"bufio"
	"fmt"
	"os"
	"strings"
	"strconv"
)

//  go run 10.go "n,n,n,n"

func main() {

	size := 256

	s := strings.Split(os.Args[1], ",")
	list := make([]int, size)

	for i := 0; i < size; i++ {
		list[i] = i
	}

	pos := 0
	skip := 0

	for x := range s {

		i,_ := strconv.Atoi(s[x])

		// Reverse the section
		r := i/2
		fmt.Println("i:", i, "range:", r)
		
		for y := 0; y < r; y++ {
			bottom := (pos+y) % size
			top := (pos+i-y-1) % size

			fmt.Println("pos:", pos, "i:", i, "y:", y, "bottom:", bottom, "top:", top)

			tmp := list[bottom]
			list[bottom] = list[top]
			list[top] = tmp
		}

		pos = (pos+i+skip) % size
		fmt.Println(pos, i, list)
		skip++
	}
	fmt.Println(list[0]*list[1])

}