// {{{ by shik
#include <bits/stdc++.h>
#include <unistd.h>
#define SZ(x) ((int)(x).size())
#define ALL(x) begin(x),end(x)
#define REP(i,n) for ( int i=0; i<int(n); i++ )
#define REP1(i,a,b) for ( int i=(a); i<=int(b); i++ )
#define FOR(it,c) for ( auto it=(c).begin(); it!=(c).end(); it++ )
#define MP make_pair
#define PB push_back
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
typedef vector<int> VI;

#ifdef SHIK
template<typename T>
void _dump( const char* s, T&& head ) { cerr<<s<<"="<<head<<endl; }

template<typename T, typename... Args>
void _dump( const char* s, T&& head, Args&&... tail ) {
    int c=0;
    while ( *s!=',' || c!=0 ) {
        if ( *s=='(' || *s=='[' || *s=='{' ) c++;
        if ( *s==')' || *s==']' || *s=='}' ) c--;
        cerr<<*s++;
    }
    cerr<<"="<<head<<", ";
    _dump(s+1,tail...);
}

#define dump(...) do { \
    fprintf(stderr, "%s:%d - ", __PRETTY_FUNCTION__, __LINE__); \
    _dump(#__VA_ARGS__, __VA_ARGS__); \
} while (0)

template<typename Iter>
ostream& _out( ostream &s, Iter b, Iter e ) {
    s<<"[";
    for ( auto it=b; it!=e; it++ ) s<<(it==b?"":" ")<<*it;
    s<<"]";
    return s;
}

template<typename A, typename B>
ostream& operator <<( ostream &s, const pair<A,B> &p ) { return s<<"("<<p.first<<","<<p.second<<")"; }
template<typename T>
ostream& operator <<( ostream &s, const vector<T> &c ) { return _out(s,ALL(c)); }
template<typename T, size_t N>
ostream& operator <<( ostream &s, const array<T,N> &c ) { return _out(s,ALL(c)); }
template<typename T>
ostream& operator <<( ostream &s, const set<T> &c ) { return _out(s,ALL(c)); }
template<typename A, typename B>
ostream& operator <<( ostream &s, const map<A,B> &c ) { return _out(s,ALL(c)); }
#else
#define dump(...)
#endif

template<typename T>
void _R( T &x ) { cin>>x; }
void _R( int &x ) { scanf("%d",&x); }
void _R( long long &x ) { scanf("%" PRId64,&x); }
void _R( double &x ) { scanf("%lf",&x); }
void _R( char &x ) { scanf(" %c",&x); }
void _R( char *x ) { scanf("%s",x); }

void R() {}
template<typename T, typename... U>
void R( T& head, U&... tail ) {
    _R(head);
    R(tail...);
}

template<typename T>
void _W( const T &x ) { cout<<x; }
void _W( const int &x ) { printf("%d",x); }
template<typename T>
void _W( const vector<T> &x ) {
    for ( auto i=x.cbegin(); i!=x.cend(); i++ ) {
        if ( i!=x.cbegin() ) putchar(' ');
        _W(*i);
    }
}

void W() {}
template<typename T, typename... U>
void W( const T& head, const U&... tail ) {
    _W(head);
    putchar(sizeof...(tail)?' ':'\n');
    W(tail...);
}

#ifdef SHIK
#define FILEIO(...)
#else
#define FILEIO(name) do {\
    freopen(name ".in","r",stdin); \
    freopen(name ".out","w",stdout); \
} while (0)
#endif

// }}}

struct Permutation {
    vector<int> p;

    Permutation(int n) {
        p.resize(n);
        for (int i = 0; i < n; i++) {
            p[i] = i;
        }
    }

    int len() const {
        return p.size();
    }

    int operator[](int i) const {
        return p[i];
    }

    int& operator[](int i) {
        return p[i];
    }

    Permutation inv() {
        Permutation ip(len());
        for (int i = 0; i < len(); i++) {
            ip[p[i]] = i;
        }
        return ip;
    }
};

Permutation operator*(Permutation a, const Permutation &b) {
    auto n = a.len();
    assert(b.len() == n);
    for (int i = 0; i < n; i++) {
        a[i] = b[a[i]];
    }
    return a;
}

Permutation operator^(const Permutation &a, int64_t b) {
    auto n = a.len();
    Permutation p(n);
    vector<bool> vis(n);
    for (int i = 0; i < n; i++) {
        if (vis[i]) {
            continue;
        }
        int cl = 0;
        for (int j = i; !vis[j]; j = a[j]) {
            cl++;
            vis[j] = true;
        }
        int d = b % cl, x = i, y = i;
        for (int j = 0; j < d; j++) {
            y = a[y];
        }
        for (int j = 0; j < cl; j++) {
            p[x] = y;
            x = a[x];
            y = a[y];
        }
    }
    return p;
}

// Permutation operator^(Permutation a, int64_t b) {
    // Permutation s(a.len());
    // while (b != 0) {
        // if (b & 1) {
            // s = s * a;
        // }
        // a = a * a;
        // b >>= 1;
    // }
    // return s;
// }

const int N=1e5+10;
int n,x[N],m,a[N],d[N],d2[N];
LL k,x2[N];
int main() {
    R(n);
    REP1(i,1,n) R(x[i]);
    R(m,k);
    REP1(i,1,m) R(a[i]);
    REP1(i,1,n-1) d[i]=x[i+1]-x[i];
    Permutation p(n-1);
    REP1(i,1,m) {
        int t=a[i];
        swap(p[t-2],p[t-1]);
    }
    p=p^k;
    REP(i,p.len()) d2[i+1]=d[p[i]+1];
    x2[1]=x[1];
    REP1(i,2,n) x2[i]=x2[i-1]+d2[i-1];
    REP1(i,1,n) W(x2[i]);
    return 0;
}


Measured memory_bytes: 3960