// 也就是遍历找到(x!-1)*y-n的绝对值的最小值
// 由于当x 为1时,整个最小值固定为n(负n的绝对值)

// 那么我定义一个ll min = n;
// 首先计算出所有的x的阶乘,由于12的阶乘是1e8数量级,因此只需计算到12!即可

// 从i=3开始遍历x,然后j=1开始遍历y
// 注意x,y都不为2,j == 2需要肯踢牛
// 然后当表达式的值大于2*n时其实就可以补瑞克了,因为2*n+1-n一定大于n(我们定义的min)

// 最后输出x和y
#include <iostream>
#include <cmath>

using namespace std;
#define ll long long
ll fact[13] = {0};

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    ll n;
    cin>>n;
    // n 比较小时
    if (n == 1)
    {
        cout<<1<<' '<<1;
        return 0;
    }
    if (n == 2)
    {
        cout<<1<<' '<<1;
        return 0;
    }
    // 计算阶乘
    fact[1] = 1;
    for (int i = 2;i <= 12;i++)
    {
        fact[i] = fact[i-1]*i;
    }

    ll min = n;
    ll x = 0,y = 0;

    for (ll i = 3;i <= 12;i++)
    {
        if (i == 2)
            continue;
        for (ll j = 1;j <= 1000000000;j++)
        {
            if (j ==2 )
                continue;

            ll temp = fact[i]*j-j;

            // 如果前边的已经超过了2*n,说明正的值已经无法再小于
            // temp比较小的情况下产生的负值
            if (temp >= 2*n)
                break;

            if (min > abs(temp-n))
            {
                min = abs(temp-n);
                x = i;
                y = j;
            }
        }
    }

    cout<<x<<' '<<y;
    return 0;
}

// 1 2 6 24 120 720 5040 40320 362880 3628800 40000000
// 1 2 3 4   5   6   7    8      9     10      11    12  13