package main import ( "fmt" "strconv" "strings" ) var l map[byte]int func init() { l = make(map[byte]int) l['0'] = 0 l['1'] = 1 l['2'] = 2 l['3'] = 3 l['4'] = 4 l['5'] = 5 l['6'] = 6 l['7'] = 7 l['8'] = 8 l['9'] = 9 l['A'] = 10 l['B'] = 11 l['C'] = 12 l['D'] = 13 l['E'] = 14 l['F'] = 15 l['a'] = 10 l['b'] = 11 l['c'] = 12 l['d'] = 13 l['e'] = 14 l['f'] = 15 } func main() { var n int var m string var input string inputList := make([]string, 0) numList := make([]int, 0) for { fmt.Scan(&input) if input == "END" { break } index := strings.Index(input, "#") n, _ = strconv.Atoi(input[:index]) m = input[index+1:] inputList = append(inputList, input) numList = append(numList, ntot(n, m)) } shit := make(map[int]int) for i := range numList { if _, ok := shit[numList[i]]; ok { shit[numList[i]]++ } else { shit[numList[i]] = 1 } } number := 0 for i := range numList { if shit[numList[i]] == 1 { fmt.Println(inputList[i]) number++ } } if number == 0 { fmt.Println("None") } fmt.Println(numList) } func ntot(n int, m string) (ans int) { for i := 0; i < len(m); i++ { ans += l[m[len(m)-1-i]] * wtf(n, i) } return } func wtf(n, i int) int { ans := 1 for j := 1; j <= i; j++ { ans *= n } return ans }