import strutils, sequtils const MOD = int(1e9 + 7) proc `%%`(a: int, b: int): int = result = (a + b) mod b template `+%=` (a, b: int) = a = (a + b) mod MOD template `+%%=` (a, b: int) = a = (a + b) %% MOD proc matmul(a: seq[seq[int]], b: seq[seq[int]]): seq[seq[int]] = var (a, b) = (a, b) result = newSeqWith(a.len, newSeq[int](b[0].len)) for i in 0.. 0: if (n and 1) == 1: result = matmul(result, a) a = matmul(a, a) n = n shr 1 proc solve1(n: int, k: int, a: seq[int]): tuple[a: int, b: int] = var (k, n, a) = (k, n, a) var y = 0 for i in 0..