// 秦九韶算法
const int N=1e5+10;
int a[N];
int main(){
int n,x;
cin>>n;
for(int i=0;i<=n;i++) cin>>a[i];
cin>>x;
int res=0;
for(int i=0;i<=n;i++) {
res=res*x+a[i];
}
cout<<res<<endl;
return 0;
}
// 牛顿迭代法求方程零点
// (函数,导数,求解y)
double f(const double &x) {return x*x+6*x-8;}
double fder(const double &x) {return 2*x+6;}
int cnt=0;
double get_ans(double x=1) {
double diff=fabs(f(x)/fder(x)); //误差估计
if(diff<=1e-7) return x;
return get_ans(x-f(x)/fder(x));
}
// 数值积分(梯形面积分割)
double f(const double &x) {return x*x+6*x-8;}
int cnt=0;
double F(double a,double b) {
double n=1000;
double h=(b-a)/n;
double ans=0;
for(int i=1;i<=n;++i) {
double x0=a+(i-1)*h,x1=a+i*h;
ans+=h/2*(f(x0)+f(x1));
}
return ans;
}