import sequtils template times*(n:int,body) = (for _ in 0.." .} proc scan(): int = while true: let k = getchar_unlocked() if k < '0': break result = 10 * result + k.ord - '0'.ord let n = scan() const INF = 1000_0010 const C = (proc():seq[int] = result = @[] for i in 1..INF: let c = i * (i + 1) div 2 if c > INF : break result &= c )() for i,c in C: if n == c : quit "1",0 if c > n : break for i in 0.. n : break echo 3