#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for(int i = 0; i < n; i++)
#define rep2(i, x, n) for(int i = x; i <= n; i++)
#define rep3(i, x, n) for(int i = x; i >= n; i--)
#define elif else if
#define sp(x) fixed << setprecision(x)
#define pb push_back
#define eb emplace_back
#define all(x) x.begin(), x.end()
#define sz(x) (int)x.size()
using ll = long long;
using ld = long double;
using pii = pair<int, int>;
using pil = pair<int, ll>;
using pli = pair<ll, int>;
using pll = pair<ll, ll>;
const ll MOD = 1e9+7;
//const ll MOD = 998244353;
const int inf = (1<<30)-1;
const ll INF = (1LL<<60)-1;
const ld EPS = 1e-10;
template<typename T> bool chmax(T &x, const T &y) {return (x < y)? (x = y, true) : false;};
template<typename T> bool chmin(T &x, const T &y) {return (x > y)? (x = y, true) : false;};

void print(ll x){
    cout << x << ".00000000000000" << endl;
}

int main(){
    int N;
    cin >> N;
    ll x[N];
    rep(i, N) cin >> x[i];
    ll d[N-1];
    rep(i, N-1) d[i] = x[i+1]-x[i];
    int M; ll K;
    cin >> M >> K;
    int dp[60][N-1];
    rep(i, N-1) dp[0][i] = i;
    rep(i, M){
        int a;
        cin >> a;
        swap(dp[0][a-2], dp[0][a-1]);
    }
    rep2(i, 1, 59){
        rep(j, N-1) dp[i][j] = dp[i-1][dp[i-1][j]];
    }
    ll ans = x[0];
    print(ans);
    rep(i, N-1){
        int now = i;
        rep(j, 60){
            if(K&(1LL<<j)) now = dp[j][now];
        }
        print(ans += d[now]);
    }
}
#include <bits/stdc++.h>
#include <stdlib.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vec;
typedef vector<vec> mat;
const ll mod=1000000007;
const ll INF=1e15;
#define REP(i,a,b) for(int i=a;i<b;i++)
#define rep(i,n) REP(i,0,n)

vec chikan(vec X, vec M){
    vec ret(M.size());
    for(int i=0;i<M.size();i++) {
        ret.at(i)=M.at(X.at(i));
    }
    return ret;
}

vec bekic(vec X, ll n){
    vec ret(X.size());
    rep(i,X.size()) ret.at(i)=i;
    
    while(n>0){
        if(n%2) ret=chikan(ret,X);
        X=chikan(X,X);
        n/=2;
    }
    return ret;
}

int main(){
    ll N; cin>>N;
    vec x(N);
    rep(i,N) cin>>x.at(i);
    ll M,K; cin>>M>>K;
    vec a(M);
    rep(i,M) cin>>a.at(i);
    rep(i,M) a.at(i)--;

    vec d(N);
    REP(i,1,N) d.at(i)=x.at(i)-x.at(i-1);
    vec P(N);
    rep(i,N) P.at(i)=i;
    rep(i,M) swap(P.at(a.at(i)),P.at(a.at(i)+1));
    P=bekic(P,K);
    d=chikan(P,d);
    d.at(0)=x.at(0);
    rep(i,N-1) d.at(i+1)+=d.at(i);
    rep(i,N) cout<<d.at(i)<<endl;

}