#include <bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=7e6+7;
int a[maxn];
signed main() {
queue<int>q1,q2,q3;
int n,m,q,u,v,t;
double p=(double)u/v;
cin>>n>>m>>q>>u>>v>>t;
for(int i=1;i<=n;++i){
cin>>a[i];
}
sort(a+1,a+n+1);
for(int i=n;i>=1;--i){
q1.push(a[i]);
}
int w=0,tp=0;
for(int i=1;i<=m;++i){
int maxn=-2147483647,cnt=0,f=0;
if(!q1.empty() && maxn<q1.front())maxn=max(maxn,q1.front()),f=1;
if(!q2.empty() && maxn<q2.front())maxn=max(maxn,q2.front()),f=2;
if(!q3.empty() && maxn<q3.front())maxn=max(maxn,q3.front()),f=3;
if(f==1)q1.pop();
else if(f==2)q2.pop();
else if(f==3)q3.pop();
tp=maxn+w,w+=q;
int d1=floor(tp*p/v)-w,d2=tp-d1-2*w;
q2.push(d1),q3.push(d2);
if(!(i%t))printf("%lld ",tp);
}
puts("");
int k=0;
while(!q1.empty()||!q2.empty()||!q3.empty()){
int maxn=-2147483647,cnt=0,f=0;
if(!q1.empty() && maxn<q1.front())maxn=max(maxn,q1.front()),f=1;
if(!q2.empty() && maxn<q2.front())maxn=max(maxn,q2.front()),f=2;
if(!q3.empty() && maxn<q3.front())maxn=max(maxn,q3.front()),f=3;
if(f==1)q1.pop();
else if(f==2)q2.pop();
else if(f==3)q3.pop();
if(!((++k)%t))printf("%lld ",maxn+w);
}
return 0;
}