using System;
using System.Numerics;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace debug
{
class main
{
static void Main(string args)
{
//問題クラスを展開
ProgramE a = new ProgramE();
a.main();//実行する
}
}
//ABC170
class ProgramA
{
public void main()
{
//入力
string s = Console.ReadLine();
//int型で96より大きければ小文字、それ以外は大文字
if (s[0] > 96)
Console.WriteLine("a");
else
Console.WriteLine("A");
}
}
class ProgramB
{
public void main()
{
//入力
string s = Console.ReadLine().Split(' ');
int n = int.Parse(s[0]);
int k = int.Parse(s[1]);
string t = Console.ReadLine().Split(' ');
int a = new int[n];
for (int i = 0; i < n; i++)
a[i] = int.Parse(t[i]);
//aをソート
Array.Sort(a);
int ans = 0;
//k番目までを取り出して足す
for (int i = 0; i < k; i++)
ans += a[i];
//答出力
Console.WriteLine(ans);
}
}
class ProgramC
{
public void main()
{
//入力
long n = long.Parse(Console.ReadLine());
long n2 = n;
List<long> list = new List<long>();
long t = 100;
while (n2 != 0)
{
n2 -= 1;//1引いておく
list.Add(n2 % 26);//リストに追加
n2 /= 26;//26で割る
}
//後ろから取り出していく
for (int i = 0; i < list.Count; i++)
{
}
}
}
class ProgramD
{
public void main()
{
//入力
long n = long.Parse(Console.ReadLine());
string s = Console.ReadLine().Split(' ');
long a = new long[100000];//100000までの要素数を入れる配列
//要素数を足し合わせる
for (int i = 0; i < n; i++)
a[long.Parse(s[i]) -1]++;
//あらかじめ和をもとめる
long sum = 0;
for (int i = 0; i < n; i++)
sum += long.Parse(s[i]);
long q = long.Parse(Console.ReadLine());
//クエリごとに判定
for (int i = 0; i < q; i++)
{
string t = Console.ReadLine().Split(' ');
sum -= a[long.Parse(t[0]) - 1] * long.Parse(t[0]);//Bi*a[Bi]を引く
sum += a[long.Parse(t[0]) - 1] * long.Parse(t[1]);//Ci*a[Bi]を足す
a[long.Parse(t[1]) - 1] += a[long.Parse(t[0]) -1];//Ciの要素数にa[Bi]分を足す
a[long.Parse(t[0]) - 1] = 0;//Biの要素数は0になる
//答え出力
Console.WriteLine(sum);
}
}
}
class ProgramE
{
public void main()
{
//入力
int n = int.Parse(Console.ReadLine());
string s = Console.ReadLine().Split(' ');
long[] a = new long[n];
for (int i = 0; i < n; i++)
a[i] = long.Parse(s[i]);
//入力の排他的論理和(S)を求める
long sum = a[0] ^ a[1];
for (int i = 2; i < n; i++)
sum = sum ^ a[i];
//S^aiが答え
for (int i = 0; i < n; i++)
Console.Write((sum ^ a[i]) + " ");
}
}
}
*1:char)(list[list.Count - 1 - i] + 'a'