#include #include #include #include #include #include #include #include #include #include #include #include #include #pragma warning(disable:4996) typedef long long ll; #define MIN(a, b) ((a)>(b)? (b): (a)) #define MAX(a, b) ((a)<(b)? (b): (a)) #define LINF 9223300000000000000 #define INF 2140000000 const long long MOD = 1000000007; using namespace std; int main(int argc, char* argv[]) { ll n; scanf("%lld", &n); ll a[4]={3,5,6,7}; if(n<8) { int i,j; for(i=0; i<4; i++) { for(j=0; j<4; j++) { if(a[i]+a[j]==n) { printf("%lld %lld\n", a[i], a[j]); return 0; } } } printf("-1\n"); return 0; } int i; for(i=0; i<4; i++) { ll tmp=n-a[i]; int fail=0; while(tmp) { if(tmp==1) break; if(tmp%2!=0) { fail=1; break; } tmp/=2; } if(fail) { printf("%lld %lld\n", a[i], n-a[i]); return 0; } } printf("-1\n"); return 0; }