#include <iostream>

using namespace std;

int shit[18] = {
    1,
    31,
    465,
    4495,
    31465,
    169911,
    736281,
    2629575,
    7888725,
    20160075,
    44352165,
    84672315,
    141120525,
    206253075,
    265182525,
    300540195,
    300540195
};

unsigned long long int fuck[32] = {
0
,2147483647
,64424509410
,934155386445
,8718783606820
,58851789346035
,306029304599382
,1275122102497425
,4371847208562600
,12569060724617475
,30724370660176050
,64521178386369705
,117311233429763100
,185742786263791575
,257182319442172950
,312292816465495725
,333112337563195440
,312292816465495725
,257182319442172950
,185742786263791575
,117311233429763100
,64521178386369705
,30724370660176050
,12569060724617475
,4371847208562600
,1275122102497425
,306029304599382
,58851789346035
,8718783606820
,934155386445
,64424509410
,2147483647
};

int comb(int n, int k){
    /*
    double res=1;
    for(int i=0;i<k;i++){
        res*=n-i;
        res/=k-i;
    }
    return (int)res;
    */
    if(k<17)return shit[k];
    else return shit[31-k];
}

int main(){
    int x;
    cin>>x;
    /*
    int C=comb(31,x);
    unsigned long long int sum[32]={};
    for(unsigned int i=0;i<(1<<31);i++){
        sum[__builtin_popcount(i)]+=i;
    }
    for(int i=0;i<32;i++){
        cout<<i<<' '<<sum[i]<<endl;
    }*/
    if(x<32){
        cout<<comb(31,x)<<' '<<fuck[x]<<endl;
    }else{
        cout<<0<<' '<<0<<endl;
    }
    return 0;
}