package main

import "fmt"

func main() {
	n := 9
	ans := make([]int, n)
	for i := range ans {
		ans[i] = i + 1
	}

	evaluate := func(a []int) bool {
		div0 := a[1]*10 + a[2]
		div1 := a[4]*10 + a[5]
		div2 := a[7]*10 + a[8]
		return a[0]*div1*div2+a[3]*div0*div2+a[6]*div0*div1 == div0*div1*div2
	}

	// （開発用）生成したpermutationの総数を確認
	cnt := 0
	_ = cnt

	var permutate func(int)
	permutate = func(s int) {
		if s+2 < n {
			permutate(s + 1)
		} else {
			if evaluate(ans) {
				fmt.Println(ans)
			}
			cnt++
		}
		for i := s + 1; i < n; i++ {
			ans[s], ans[i] = ans[i], ans[s]
			permutate(s + 1)
			ans[s], ans[i] = ans[i], ans[s]
		}
	}

	permutate(0)
	// fmt.Println(cnt) // must be n!
}
