#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
#include<cmath>
#define ll long long
using namespace std;
const int N=1e5+10;
queue<int> A,B,C;
int n,m,q,u,v,t,a[N];
bool cmp(int a,int b){
return a > b;
}
priority_queue<int> ans;
int main(){
scanf("%d%d%d%d%d%d",&n,&m,&q,&u,&v,&t);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++) A.push(a[i]);
double p=u*1.0/v;
int delta=0,x=0;
for(int i=1;i<=m;i++){
int a=-1,b=-1,c=-1;
if(!A.empty()) a=A.front();
if(!B.empty()) b=B.front();
if(!C.empty()) c=C.front();
if(a >= b){
if(a >= c){
x=a;
A.pop();
}
else{
x=c;
C.pop();
}
}
else{
if(b >= c){
x=b;
B.pop();
}
else{
x=c;
C.pop();
}
}
x+=delta;
B.push(floor(p*x)-delta-q);
C.push(x-floor(p*x)-delta-q);
delta+=q;
if(i%t == 0){
printf("%d ",x);
}
}
printf("\n");
while(!A.empty()){
ans.push(A.front());
A.pop();
}
while(!B.empty()){
ans.push(B.front());
B.pop();
}
while(!C.empty()){
ans.push(C.front());
C.pop();
}
int i=0;
while(!ans.empty()){
i++;
if(i%t == 0){
printf("%d ",ans.top()+delta);
}
ans.pop();
}
return 0;
}