from time import * start_time = time() from random import * from sys import * input = stdin.readline MAX = 100000000 N = int(input()) score = 10**10 # 誤差関数 def error(a, b): return min(abs(a - b), MAX - abs(a - b)) tmp = [] for i in range(N): tmp.append(list(map(int,input().split()))) ans = [] for i in range(N): ans.append([0]*(i+1)) ans[-1] = tmp[-1][:] def build(): diff = 0 for i in range(N): diff = max(diff,error(ans[-1][i],tmp[-1][i])) for i in range(N-2,-1,-1): for j in range(i+1): ans[i][j] = (ans[i+1][j] + ans[i+1][j+1])%100000000 diff = max(diff,error(ans[i][j],tmp[i][j])) return diff score = build() cnt = 0 while time()-start_time < 1.9: L = randint(0,N) R = randint(0,N) if L == R: continue elif L > R: L,R = R,L before = ans[-1][:] for j in range(L,R): ans[-1][j] = randint(0,99999999) nexscore = build() if nexscore < score: score = nexscore cnt += 1 else: ans[-1] = before print(*ans[-1])