/* Look at me! Look at me! Look at how large the monster inside me has become! */ #include #include #include #include #include #include #define FIT(a,b) for(vector::iterator a=b.begin();a!=b.end();a++) #define FITP(a,b) for(vector >::iterator a=b.begin();a!=b.end();a++) #define RIT(a,b) for(vector::reverse_iterator a=b.end();a!=b.begin();++a) #include #define ROF(a,b,c) for(int a=b;a>=c;--a) #include #include #define FOR(a,b,c) for(int a=b;a<=c;++a) #define REP(a,b) for(register int a=0;a #include #include #include #define f cin #define g cout #include #define INF 0x3f3f3f3f #define debug cerr<<"OK"; #define pii pair #define mp make_pair #define pb push_back #define fi first #define se second #define ld long double #define ll long long #define ull unsigned long long #define eps 1.e-7 #define BUFMAX 10100100 #define M 100100 #define N 200100 #define NM 2000100 #define mod 1000000007 #define eps 1.e-10 using namespace std; /* int dx[]={-1,-1,-1,0,1,1,1,0}; int dy[]={-1,0,1,1,1,0,-1,-1}; */ char s[N],p[N]; int n,k,ti,nofg,t; void pun(int x) { int k=0; while(x) { p[++k]=x%10; x/=10; } ROF(i,k,1) s[++t]=p[i]+'0'; } void mul(int x) { s[++t]='*'; int k=0; while(x) { p[++k]=x%10; x/=10; } ROF(i,k,1) s[++t]=p[i]+'0'; } void comb(int x) { int a=x*(x-1)*(x-2)*(x-3); mul(a); } int main () { #ifndef ONLINE_JUDGE freopen("a.in","r",stdin); freopen("a.out","w",stdout); #endif f>>n>>k; if(n==4) { g<<"1"; return 0; } else { s[++t]='('; nofg=n/4; pun(n); mul(n-1); mul(n-2); mul(n-3); n-=4; ++ti; while(n>4) { comb(n); n-=4; ++ti; } s[++t]='/'; s[++t]='('; s[++t]='('; pun(24); s[++t]='^'; pun(ti); s[++t]=')'; int r=nofg; mul(nofg); nofg--; while(nofg>1) { mul(nofg); nofg--; } s[++t]=')'; s[++t]=')'; s[++t]='^'; g<<(s+1); g<