package main import . "fmt" func main() { var x int64 Scan(&x) if x == 1 { Println(2) Println(1, 2) Println("b g") return } ps := []int64{} var cnt int64 for x % 2 == 0 { if len(ps)>0&&ps[len(ps)-1] == 2 { ps[len(ps)-1]+=2 cnt += 2 } else { ps = append(ps, 2) cnt += 3 } x /= 2 } for i := int64(3); i<=x&&i<2e5 ; i+= 2 { if x % i != 0 { continue } for x % i == 0 { ps = append(ps, i) x /= i cnt += i+1 } if cnt > 2e5 { Println(-1) return } } if x > 1 { if cnt + x+1 > 2e5 { Println(-1) return } ps = append(ps, x) cnt += x+1 } Println(cnt) bg := make([]any, 0, cnt) var prev, id int64 for _, p := range ps { id++ if prev > 0 { Println(prev, id) } bg = append(bg, "b") for i := int64(1); i <= p; i++ { Println(id, id+i) bg = append(bg, "g") } prev, id = id, id+p } Println(bg...) }