#include using namespace std; #define ALL(x) begin(x),end(x) #define rep(i,n) for(int i=0;i<(n);i++) #define debug(v) cout<<#v<<":";for(auto x:v){cout<bool chmax(T &a,const T &b){if(abool chmin(T &a,const T &b){if(b ostream &operator<<(ostream &os,const vector&v){ for(int i=0;i<(int)v.size();i++) os< istream &operator>>(istream &is,vector&v){ for(T &x:v)is>>x; return is; } int n,d; vector add(vector l,vector r){ rep(i,d+1) l[i]+=r[i]; return l; } vector mul(vector l,vector r){ vector ret(d+1,0); rep(i,d+1)rep(j,d+1)if(i+j<=d) ret[i+j]+=l[i]*r[j]; return ret; } vector diff(vector v){ vector ret(d+1,0); for(int i=d;i>0;i--) ret[i-1]=v[i]*i; return ret; } vector expression(string s,int &p); vector term(string s,int &p); vector factor(string s,int &p); vector number(string s,int &p); vector expression(string s,int &p){ vector res=term(s,p); while(p<(int)s.size()){ if(s[p]=='+'){ p++; res=add(res,term(s,p)); continue; } break; } return res; } vector term(string s,int &p){ auto res=factor(s,p); while(p<(int)s.size()){ if(s[p]=='*'){ p++; res=mul(res,factor(s,p)); continue; } break; } return res; } vector factor(string s,int &p){ vector ret(d+1,0); if(s[p]=='d'){ p+=2; auto mid=expression(s,p); p++; return diff(mid); } return number(s,p); } vector number(string s,int &p){ vector ret(d+1,0); if(s[p]=='x'){ ret[1]=1; p++; } else{ int num=0; while(p<(int)s.size() and isdigit(s[p])) num=num*10+s[p++]-'0'; ret[0]=num; } return ret; } signed main(){ cin>>n; cin>>d; string s;cin>>s; int ptr=0; auto res=expression(s,ptr); cout<