#define N (1<<6)
#include <bits/stdc++.h>

using namespace std;

int g[N][N],p[N];
int n,M,a,b,c,t;

struct matrix
{
	int n,a[N][N];
	matrix(int tn,int x):n(tn)
	{
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
				a[i][j]=i==j?x:0;
	}

	matrix(int tn,int g[][N]):n(tn)
	{
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
				a[i][j]=g[i][j];
	}

	matrix operator*(matrix& b)
	{
		matrix c(n,0);
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
				for(int k=0;k<n;k++)
					c.a[i][j]+=a[i][k]*b.a[k][j],c.a[i][j]%=M;
		return c;
	}

	matrix operator^(int k)
	{
		matrix res(n,1),cur(*this);
		for(;k;k>>=1,cur=cur*cur)
			if(k&1) res=res*cur;
		return res;
	}
};

int main()
{
	for(;cin>>n>>M>>a>>b>>c>>t;)
	{
		memset(g,0,sizeof(g));
		for(int i=0;i<n;i++)
			scanf("%d",p+i);
		for(int i=0;i<n;i++)
		{
			g[i][i]=b;
			if(i>0) g[i-1][i]=a;
			if(i<n-1) g[i+1][i]=c;
		}

		matrix m(n,g); m=m^t;

		for(int i=0;i<n;i++)
		{
			int res=0;
			for(int j=0;j<n;j++) 
				res+=p[j]*m.a[j][i],res%=M;
			if(i<n-1)
				printf("%d ",res);
			else
				printf("%d\n",res);
		}
	}
}