template times*(n:int,body) = (for _ in 0.." .} proc printf(formatstr: cstring){.header: "", varargs.} proc putchar_unlocked(c:char){. importc:"putchar_unlocked",header: "" .} proc gets(str: untyped){.header: "", varargs.} proc puts(str: untyped){.header: "", varargs.} proc scan(): int = while true: let k = getchar_unlocked() if k < '0': break result = 10 * result + k.ord - '0'.ord var S : array[1_00010,char] proc reduce(x,y,size:int) = if x == -1: puts(S) return for i in 0..