#include<iostream>
#include<cstdio>
#include<queue>
#define MAXN 100010
#define MAXM 7000010
using namespace std;
int n,m,q,T;
double u,v,p;
int a[MAXN],pos;
int line1[MAXN+MAXM],line2[MAXN+MAXM];
int head1=1,head2=1,tail1,tail2;
int times;
priority_queue<int> pq;
int main()
{
scanf("%d%d%d%lf%lf%d",&n,&m,&q,&u,&v,&T);
p=u/v;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
pos=1;
for(int i=1;i<=m;i++)
{
int t;
if(pos<=n&&a[pos]>=line1[head1]&&a[pos]>=line2[head2])
t=a[pos++];
else if(line1[head1]>=line2[head2])
t=line1[head1++];
else
t=line2[head2++];
t+=times;
if(i%T==0)
printf("%d ",t);
int a=(double)t*p;
int b=t-a;
times+=q;
a-=times;
b-=times;
line1[++tail1]=a;
line2[++tail2]=b;
}
printf("\n");
for(int i=pos;i<=n;i++)
pq.push(a[i]+times);
for(int i=head1;i<=tail1;i++)
pq.push(line1[i]+times);
for(int i=head2;i<=tail2;i++)
pq.push(line2[i]+times);
for(int i=1;i<=n+m;i++)
{
if(i%T==0)
printf("%d ",pq.top());
pq.pop();
}
return 0;
}