//ios::sync_sith_stdio(false) -> no cin.tie(0)
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<bits/stdc++.h>
#define ll long long
#define ddd printf("-----------------debug\n");
using namespace std;
const int maxn=7e6+10;
int cut1[maxn],cut2[maxn],now[maxn],sigma,h0=1,h1=1,t1=0,h2=1,t2=0,top;
int n,m,q,u,v,t;
double p;
priority_queue<int> ans;
bool cmp(int a,int b){ return a>b;}
int main()
{
ios::sync_with_stdio(false);
cin>>n>>m>>q>>u>>v>>t;
p=(double)u/v;
for(int i=1;i<=n;i++) cin>>now[i];
sort(now+1,now+1+n,cmp);
for(int i=1;i<=m;i++)
{
if(h0>n){ if(cut1[h1]>=cut2[h2]) top=cut1[h1++]; else top=cut2[h2++]; }
else if(now[h0]>=cut1[h1]&&now[h0]>=cut2[h2]) top=now[h0++];
else if(cut1[h1]>=now[h0]&&cut1[h1]>=cut2[h2]) top=cut1[h1++];
else top=cut2[h2++];
top+=sigma;if(i%t==0) cout<<top<<" ";//printf("%d ",top);//
int a1=floor((double)top*p),a2=top-a1;
sigma+=q; a1-=sigma,a2-=sigma; cut1[++t1]=a1,cut2[++t2]=a2;
}
cout<<'\n';//putchar('\n');
for(int i=h0;i<=n;i++) ans.push(now[i]);
for(int i=h1;i<=t1;i++) ans.push(cut1[i]);
for(int i=h2;i<=t2;i++) ans.push(cut2[i]);
for(int i=1;ans.size();i++){
if(i%t==0) cout<<ans.top()+sigma<<" ";//printf("%d ",ans.top()+sigma);//
ans.pop();
}
return 0;
}