#include <bits/stdc++.h>
using namespace std;
long long n,m,k,u,v,t,a[100005];
queue <long long> q1,q2,q3;
bool cmp(long long x,long long y)
{
return x>y;
}
int main()
{
cin>>n>>m>>k>>u>>v>>t;
for (long long i=1;i<=n;i++)
{
cin>>a[i];
}
sort(a+1,a+n+1,cmp);
for (long long i=1;i<=n;i++)
{
q1.push(a[i]);
}
for (long long i=1;i<=m;i++)
{
long long maxn=-0X3f3f3f3f3f3f3f3f;
if (!q1.empty()) maxn=max(q1.front(),maxn);
if (!q2.empty()) maxn=max(q2.front(),maxn);
if (!q3.empty()) maxn=max(q3.front(),maxn);
if (!q1.empty()&&maxn==q1.front())
{
q1.pop();
}
else if (!q2.empty()&&maxn==q2.front())
{
q2.pop();
}
else
{
q3.pop();
}
maxn+=k*(i-1);
long long a1=int(1.0*maxn*u/v),a2=maxn-a1;
q2.push(a1-k*i);
q3.push(a2-k*i);
if (i%t==0) cout<<maxn<<' ';
}
cout<<'\n';
for (long long i=1;i<=n+m;i++)
{
long long maxn=-0X3f3f3f3f3f3f3f3f;
if (!q1.empty()) maxn=max(q1.front(),maxn);
if (!q2.empty()) maxn=max(q2.front(),maxn);
if (!q3.empty()) maxn=max(q3.front(),maxn);
if (!q1.empty()&&maxn==q1.front())
{
q1.pop();
}
else if (!q2.empty()&&maxn==q2.front())
{
q2.pop();
}
else
{
q3.pop();
}
if (i%t==0) cout<<maxn+k*m<<' ';
}
return 0;
}