rt
#include <bits/stdc++.h>
using namespace std;
const int N = 2e6+10;
int n, ans[N];
inline int read() {
int s = 0, w = 1;
char ch = getchar();
for ( ; !isdigit(ch); ch=getchar()) if (ch == '-') w = -1;
for ( ; isdigit(ch); ch=getchar()) s = s*10+ch-'0';
return s * w;
}
int main() {
n = read();
for (int i = 1; i <= n; i++) {
int x = read();
if (i % 2) {
int addr = i + (n/2-(i-1)/2) * i - (ceil(1.0*n/2)-(i-1)/2) * (i-1);
int res = (n-i+1) % 2 ? (x ^ 1) : x;
ans[addr] = res;
}
else {
int addr = i + (ceil(1.0*n/2)-i/2) * i - (n/2-(i-2)/2) * (i-1);
int res = (n-i+1) % 2 ? (x ^ 1) : x;
ans[addr] = res;
}
}
for (int i = 1; i <= n; i++) cout << ans[i] << ' ';
return 0;
}