#include<bits/stdc++.h>
using namespace std;
queue<int> q[3];
int n,m,t,q1,add;
double p;
int a[100010];
inline int read(){
int x=0,f=1;char c=getchar();
while(c<'0') f^=(c=='-'),c=getchar();
while(c>'/') x=(x<<3)+(x<<1)+(c^'0'),c=getchar();
return f?x:-x;
}
inline int getmax(){
int res=-2e9,rep=0;
for(int i=0;i<3;i++){
if(!q[i].empty()&&q[i].front()>res)
res=q[i].front(),rep=i;
}
q[rep].pop();
return res;
}
int main(){
n=read();m=read();q1=read();p=1.0*read()/read();t=read();
for(int i=1;i<=n;i++)a[i]=read();
sort(a+1,a+n+1);
for(int i=n;i;i--)q[0].push(a[i]);
for(int i=1;i<=m;i++){
int x=getmax()+add;
if(i%t==0)printf("%d ",x);
int l=p*x,r=x-l;
add+=q1;
q[1].push(l-add);
q[2].push(r-add);
}
puts("");
for(int i=1;i<=n+m;i++){
int x=getmax()+add;
if(i%t==0)printf("%d ",x);
}
puts("");
return 0;
}