#include<iostream>
#include<algorithm>
#define re register
#define N 5000010
int n,m,q,u,v,t,a[N],b[N],c[N];
int lena,lenb,lenc,nowa,nowb,nowc,front,left,right;
inline bool cmp(int a,int b){
return a>b;
}
inline int top(){
int front,flag=0;
if(nowa<=lena&&(!flag||a[nowa]>front)){
flag=1;
front=a[nowa];
}
if(nowb<=lenb&&(!flag||b[nowb]>front)){
flag=2;
front=b[nowb];
}
if(nowc<=lenc&&(!flag||c[nowc]>front)){
flag=3;
front=c[nowc];
}
if(flag==1) nowa++;
else if(flag==2) nowb++;
else nowc++;
return front;
}
inline int read(){
char c=getchar();
bool m=false;
int x=0;
while(!isdigit(c)&&c!='-') c=getchar();
if(c=='-') {
m=1;
c=getchar();
}
while(isdigit(c)) {
x=x*10+c-'0';
c=getchar();
}
if(m) return -x;
return x;
}
int main(){
n=read(),m=read(),q=read(),u=read(),v=read(),t=read();
lena=n,nowa=nowb=nowc=1;
for(re int i=1;i<=n;i++) a[i]=read();
std::sort(a+1,a+n+1,cmp);
for(re int i=1;i<=m;i++){
front=top()+(i-1)*q;
if(i % t==0) printf("%d ",front);
left=front*(long long)u/v;
right=front-left;
if(left>right) std::swap(left,right);
b[++lenb]=left-i*q;
c[++lenc]=right-i*q;
}
puts("");
for(re int i=1;i<=n+m;i++){
front=top()+m*q;
if(i%t==0) printf("%d ",front);
}
return 0;
}