#include <stdio.h> #define N 10000000 typedef long long LL; using namespace std ; LL primes[N]; //bool flag[N]; void sieve(LL n) { for(LL i=4; i<=n; i+=2) { primes[i]=1; } //LL p=(LL)sqrt(n); for(LL i=3; i*i<=n; i+=2) { if(primes[i]) continue; //primes[cnt++]=i; // if(i <= n/i) // { for(LL j=i*i; j<=n; j+=i*2) { primes[j] = 1; } // } } return ; } /*bool isprimes(LL x) { for(LL i=0;;i++) { if(primes[i]*primes[i] >x ) break; if(x%primes[i]==0) return false; } return true; }*/ void res(LL x) { for(LL i=2;;i++) { //LL p1=primes[i]; // LL p2= primes[x-i]; if( !primes[i] && !primes[x-i] ) { printf("%lld %lld",i,x-i ); break; } } } int main() { LL n; sieve(N); while(scanf("%lld",&n)!=EOF){ if(n<=7){ printf("Impossible."); continue; } if(n&1){ printf("2 3 "); res(n-5); } else{ printf("2 2 "); res(n-4); } puts(""); } return 0 ; }