// #includes {{{
#include <algorithm>
#include <numeric>
#include <iostream>
#include <string>
#include <vector>
#include <queue>
#include <deque>
#include <stack>
#include <set>
#include <map>
#include <cstdio>
#include <cstdlib>
#include <cassert>
#include <cstring>
#include <cmath>
using namespace std;
// }}}
// pre-written code {{{
#define REP(i,n) for(int i=0;i<(int)(n);++i)
#define RREP(i,a,b) for(int i=(int)(a);i<(int)(b);++i)
#define EACH(i,c) for(typeof((c).begin()) i=(c).begin(); i!=(c).end(); ++i)
#define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
//#define IFOR(i,it,c) for(__typeof((c).begin())it=(c).begin();it!=(c).end();++it,++i)
#define ALL(c) (c).begin(), (c).end()
#define MP make_pair
//#define PB push_back
#define CLEAR(c,d) memset((c),(d),sizeof(c))
#define TO_STRING(VariableName) # VariableName
//#define DB(c) cout<<TO_STRING(c)<<"="<<(c)<<endl

#define EXIST(e,s) ((s).find(e)!=(s).end())
#define dump(x) cerr << #x << " = " << (x) << endl;
#define debug(x) cerr << #x << " = " << (x) << " (L" << __LINE__ << ")" << " " << __FILE__ << endl;
#define debug2(x) cerr << #x << " = [";REP(__ind,(x).size()){cerr << (x)[__ind] << ", ";}cerr << "] (L" << __LINE__ << ")" << endl;

#define clr(a) memset((a),0,sizeof(a))
#define nclr(a) memset((a),-1,sizeof(a))
#define pb push_back

typedef long long Int;
typedef unsigned long long uInt;
typedef long double rn;

typedef pair<int,int> pii;
//{{{ io
struct IO{ }io;//dummy
#define endl "\n"
IO& operator>>(IO &io,int &n){scanf("%d",&n);return io;}
IO& operator>>(IO &io,unsigned int &n){scanf("%u",&n);return io;}
IO& operator>>(IO &io,long long &n){scanf("%lld",&n);return io;}
IO& operator>>(IO &io,unsigned long long &n){scanf("%llu",&n);return io;}
IO& operator>>(IO &io,double &n){scanf("%lf",&n);return io;}
IO& operator>>(IO &io,long double &n){scanf("%Lf",&n);return io;}
IO& operator>>(IO &io,char *c){scanf("%s",c);return io;}
IO& operator>>(IO &io,string &s){
    char c;s.clear();
    while(isspace(c=getc(stdin))){if(c==-1)return io;}
    do{
        s.push_back(c);
    }while(!isspace(c=getc(stdin)));
    if(c!=-1)ungetc(c,stdin);
    return io;
}
IO& operator<<(IO &io,const int &n){printf("%d",n);return io;}
IO& operator<<(IO &io,const unsigned int &n){printf("%u",n);return io;}
IO& operator<<(IO &io,const long long &n){printf("%lld",n);return io;}
IO& operator<<(IO &io,const unsigned long long &n){printf("%llu",n);return io;}
IO& operator<<(IO &io,const double &n){printf("%lf",n);return io;}
IO& operator<<(IO &io,const long double &n){printf("%Lf",n);return io;}
IO& operator<<(IO &io,const char c[]){printf("%s",c);return io;}
IO& operator<<(IO &io,const string &s){
    REP(i,s.size())putc(s[i],stdout);
}
//}}}
// }}}

double x[100010];
int a[100010];
double d[100010];
int perm_cycle[100010];
int perm[100010];
int new_perm[100010];
vector<vector<int> > perm_v;
vector<map<int,int> > perm_v_rev;

int N,M;
long long K;

void jump(){
	REP(i,M){
		x[a[i]] = x[a[i]-1]-x[a[i]]+x[a[i]+1];
	}
}

void dfs(int t){
//	cout<<t<<endl;
	if(perm_cycle[t]>=0){
		return;
	}
	int s = t;
	do{
		s = perm[s];
	}while(s!=t);
	int i = perm_v.size(), j = 0;
	perm_v.push_back(vector<int>());
	perm_v_rev.push_back(map<int,int>());
	s = t;
	do{
		perm_cycle[s] = i;
		perm_v[i].push_back(s);
		perm_v_rev[i][s] = j;
		s = perm[s];
//		cout<<"dfs_next: "<<s<<" ";
		j++;
	}while(s!=t);
//	cout<<endl;
}

void forward(long long K){
	REP(t,N-1){
		int i = perm_cycle[t];
//		cout<<"index: "<<i<<endl;
		int j = perm_v_rev[i][t];
		new_perm[t] = perm_v[i][((long long)j+K)%((int)(perm_v[i].size()))];
//		cout<<new_perm[t]<<" ";
	}
//	cout<<endl;
}

int main(){
	scanf("%d",&N);
	REP(i,N)scanf("%lf",&x[i]);
	scanf("%d%lld",&M,&K);
	REP(i,M)scanf("%d",&a[i]),a[i]--;
	REP(i,N-1)d[i] = x[i+1] - x[i];
	REP(i,N-1)perm[i] = i;
	REP(i,M){
		swap(perm[a[i]-1],perm[a[i]]);
	}
	/*
	cout<<"perm: ";
	REP(i,N-1){
		cout<<perm[i]<<" ";
	}
	cout<<endl;
	*/
	memset(perm_cycle,-1,sizeof(perm_cycle));
	REP(i,N-1)dfs(i);
	double sum = x[0];
	/*
	REP(i,K){
		jump();
	}
	*/
	forward(K);
	REP(i,N){
		printf("%.10lf\n",sum);
//		cout<<"add: "<<new_perm[i]<<endl;
		if(i<N-1)sum += d[new_perm[i]];
	}
	
	return 0;
}


Measured memory_bytes: 19932