def c_pyramid(N, Pos):

    from itertools import product

    # 中心座標を全探索

    for cx, cy in product(list(range(101)), repeat=2):

        # ピラミッドの高さを求める

        for x, y, h in Pos:

            if h > 0:

                height = h + abs(cx - x) + abs(cy - y)

        # ピラミッドの高さが得られた情報に適合するか調べる

        for x, y, h in Pos:

            if h != max((height - abs(cx - x) - abs(cy - y)), 0):

                break

        else:

            ans = [cx, cy, height]

            break

    ans = '{0} {1} {2}'.format(*ans)

    return ans



N = int(eval(input()))

Pos = [[int(i) for i in input().split()] for j in range(N)]

print((c_pyramid(N, Pos)))
def c_pyramid():

    N = int(eval(input()))

    Pos = [[int(i) for i in input().split()] for j in range(N)]

    # 与えられた情報から頂点座標を一意に得られるので、h=0にならない

    x, y, h = sorted(Pos, key=lambda x: x[2])[-1]

    # 中心座標を全探索

    for cx in range(101):

        for cy in range(101):

            # 頂点の高さ height を決めたとき、すべての座標の情報と一致するか？

            height = h + abs(x - cx) + abs(y - cy)  # 定義式から逆算

            if all(h_i == max(height - abs(x_i - cx) - abs(y_i - cy), 0)

                   for x_i, y_i, h_i in Pos):

                return '{} {} {}'.format(cx, cy, height)  # すべて一致した。これが解

    return None



print((c_pyramid()))
def c_pyramid(N, Pos):
    from itertools import product

    # 中心座標を全探索
    for cx, cy in product(list(range(101)), repeat=2):
        # ピラミッドの高さを求める
        for x, y, h in Pos:
            if h > 0:
                height = h + abs(cx - x) + abs(cy - y)
        # ピラミッドの高さが得られた情報に適合するか調べる
        for x, y, h in Pos:
            if h != max((height - abs(cx - x) - abs(cy - y)), 0):
                break
        else:
            ans = [cx, cy, height]
            break
    ans = "{0} {1} {2}".format(*ans)
    return ans


N = int(eval(input()))
Pos = [[int(i) for i in input().split()] for j in range(N)]
print((c_pyramid(N, Pos)))

def c_pyramid():
    N = int(eval(input()))
    Pos = [[int(i) for i in input().split()] for j in range(N)]
    # 与えられた情報から頂点座標を一意に得られるので、h=0にならない
    x, y, h = sorted(Pos, key=lambda x: x[2])[-1]
    # 中心座標を全探索
    for cx in range(101):
        for cy in range(101):
            # 頂点の高さ height を決めたとき、すべての座標の情報と一致するか？
            height = h + abs(x - cx) + abs(y - cy)  # 定義式から逆算
            if all(
                h_i == max(height - abs(x_i - cx) - abs(y_i - cy), 0)
                for x_i, y_i, h_i in Pos
            ):
                return "{} {} {}".format(cx, cy, height)  # すべて一致した。これが解
    return None


print((c_pyramid()))

-def c_pyramid(N, Pos): -    from itertools import product - +def c_pyramid(): +    N = int(eval(input())) +    Pos = [[int(i) for i in input().split()] for j in range(N)] +    # 与えられた情報から頂点座標を一意に得られるので、h=0にならない +    x, y, h = sorted(Pos, key=lambda x: x[2])[-1] -    for cx, cy in product(list(range(101)), repeat=2): -        # ピラミッドの高さを求める -        for x, y, h in Pos: -            if h > 0: -                height = h + abs(cx - x) + abs(cy - y) -        # ピラミッドの高さが得られた情報に適合するか調べる -        for x, y, h in Pos: -            if h != max((height - abs(cx - x) - abs(cy - y)), 0): -                break -        else: -            ans = [cx, cy, height] -            break -    ans = "{0} {1} {2}".format(*ans) -    return ans +    for cx in range(101): +        for cy in range(101): +            # 頂点の高さ height を決めたとき、すべての座標の情報と一致するか？ +            height = h + abs(x - cx) + abs(y - cy)  # 定義式から逆算 +            if all( +                h_i == max(height - abs(x_i - cx) - abs(y_i - cy), 0) +                for x_i, y_i, h_i in Pos +            ): +                return "{} {} {}".format(cx, cy, height)  # すべて一致した。これが解 +    return None -N = int(eval(input())) -Pos = [[int(i) for i in input().split()] for j in range(N)] -print((c_pyramid(N, Pos))) +print((c_pyramid()))