#include #include #include #include #include #include #include #include #include #define L64 long long #define MOD (1000000007LL) L64 modpow(L64 src, L64 pow, L64 mod) { L64 res = 1; while (0 < pow) { if (pow % 2 == 1) { res = (res * src) % mod; pow--; } src = (src * src) % mod; pow /= 2; } return res; } L64 modinv(L64 src, L64 mod) { return modpow(src, mod - 2, mod); } L64 getConv(L64 n, L64 k, L64 mod) { L64 ret = 1; for (L64 i = 1; i <= k; i++) { ret = (ret * (n + 1 - i)) % mod; ret = (ret * modinv(i, mod)) % mod; } return ret; } int main(void) { L64 x; std::cin >> x; if(x == 0){ std::cout << "1 0" << std::endl; return 0; } else if(32 <= x){ std::cout << "0 0" << std::endl; return 0; } L64 a = getConv(31LL, x, MOD); L64 b = 2147483647LL * getConv(30LL, x - 1, MOD); std::cout << a << " " << b << std::endl; }