import sys

from collections import Counter



stdin = sys.stdin

 

ri = lambda: int(rs())

rl = lambda: list(map(int, stdin.readline().split()))

rs = lambda: stdin.readline().rstrip()  # ignore trailing spaces

sys.setrecursionlimit(10 ** 8)



N = ri()

#一番小さい数をhとして良い

for i in range(N//4, 3501):

    for j in range(i, 3501):

        if 4*i*j-N*i-N*j == 0:

            continue

        w = (N*i*j)/(4*i*j-N*i-N*j)

        if w > 0 and w.is_integer():

            print((i, j, int(w)))

            exit()
import sys

input = sys.stdin.readline

sys.setrecursionlimit(10 ** 7)



import numpy as np



N = int(eval(input()))



"""

4xyz = n(xy+yz+zx)

(4xy-ny-nx)z = nxy

"""



UP = 3501



for x in range(1, UP):

    y = np.arange(1, UP, dtype=np.int64)

    den = N * x * y

    num = 4*x*y - N*y - N*x

    y = y[(den % num == 0) & (num > 0)]

    if len(y) > 0:

        y = y[0]

        z = (N * x * y) // (4*x*y - N*y - N*x)

        break

print((x, y, z))
import sys
from collections import Counter

stdin = sys.stdin
ri = lambda: int(rs())
rl = lambda: list(map(int, stdin.readline().split()))
rs = lambda: stdin.readline().rstrip()  # ignore trailing spaces
sys.setrecursionlimit(10**8)
N = ri()
# 一番小さい数をhとして良い
for i in range(N // 4, 3501):
    for j in range(i, 3501):
        if 4 * i * j - N * i - N * j == 0:
            continue
        w = (N * i * j) / (4 * i * j - N * i - N * j)
        if w > 0 and w.is_integer():
            print((i, j, int(w)))
            exit()

import sys

input = sys.stdin.readline
sys.setrecursionlimit(10**7)
import numpy as np

N = int(eval(input()))
"""
4xyz = n(xy+yz+zx)
(4xy-ny-nx)z = nxy
"""
UP = 3501
for x in range(1, UP):
    y = np.arange(1, UP, dtype=np.int64)
    den = N * x * y
    num = 4 * x * y - N * y - N * x
    y = y[(den % num == 0) & (num > 0)]
    if len(y) > 0:
        y = y[0]
        z = (N * x * y) // (4 * x * y - N * y - N * x)
        break
print((x, y, z))

-from collections import Counter -stdin = sys.stdin -ri = lambda: int(rs()) -rl = lambda: list(map(int, stdin.readline().split())) -rs = lambda: stdin.readline().rstrip()  # ignore trailing spaces -sys.setrecursionlimit(10**8) -N = ri() -# 一番小さい数をhとして良い -for i in range(N // 4, 3501): -    for j in range(i, 3501): -        if 4 * i * j - N * i - N * j == 0: -            continue -        w = (N * i * j) / (4 * i * j - N * i - N * j) -        if w > 0 and w.is_integer(): -            print((i, j, int(w))) -            exit() +input = sys.stdin.readline +sys.setrecursionlimit(10**7) +import numpy as np + +N = int(eval(input())) +""" +4xyz = n(xy+yz+zx) +(4xy-ny-nx)z = nxy +""" +UP = 3501 +for x in range(1, UP): +    y = np.arange(1, UP, dtype=np.int64) +    den = N * x * y +    num = 4 * x * y - N * y - N * x +    y = y[(den % num == 0) & (num > 0)] +    if len(y) > 0: +        y = y[0] +        z = (N * x * y) // (4 * x * y - N * y - N * x) +        break +print((x, y, z))