#include <iostream>
#include <stack>
#include <vector>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> f(n + 1);  
    stack<int> zhan;       
    int ans = 0;           
    for (int i = 1; i <= n; ++i) {
        cin >> f[i];
        while (!zhan.empty() && f[i] >= f[zhan.top()]) {
            ans ^= zhan.top(); 
            zhan.pop();
        }
        zhan.push(i);
        ans ^= i;
        cout << ans << endl;
    }
    return 0;
}