#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define eb emplace_back
#define pu push
#define ins insert
#define fi first
#define se second
#define all(a) a.begin(),a.end()
#define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
//mt19937 mt(chrono::steady_clock::now().time_since_epoch().count());
typedef pair<int, int> pii;
const int mod = 2147483647;
const int inf = 1e9 + 7;
signed main(){
int n; cin >> n;
int a[n], b[n];
vector<int> s;
for(int i = 0; i < n; i++){
cin >> a[i];
}
for(int i = 0; i < n; i++){
cin >> b[i];
if(i > 0) s.pb(b[i] ^ b[i - 1]);
} s.pb(INT_MAX);
for(int i = 1; i < n * 2 - 1; i++){
int x = a[i % n] ^ a[(i - 1) % n];
s.pb(x);
}
int kmp[n * 2 + 1];
kmp[0] = 0;
vector<pair<int, int> > ans;
for(int i = 1; i < s.size(); i++){
int j = kmp[i - 1];
while(j > 0 && s[j] != s[i]){ //aa#aaaaa
j = kmp[j - 1];
}
if(s[j] == s[i]) ++j;
kmp[i] = j;
if(i > n - 1 && kmp[i] == n - 1){
cout << b[0] << endl;
int x = a[i - n - n + 2] ^ b[0];
ans.pb({i - n - n + 2, x});
}
} cout << "--";
sort(ans.begin(), ans.end());
for(pii i : ans) cout << i.first << " " << i.se << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZWIgZW1wbGFjZV9iYWNrCiNkZWZpbmUgcHUgcHVzaAojZGVmaW5lIGlucyBpbnNlcnQKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGFsbChhKSBhLmJlZ2luKCksYS5lbmQoKQojZGVmaW5lIGZhc3RpbyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjaW4udGllKDApO2NvdXQudGllKDApOwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLy9tdDE5OTM3IG10KGNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKS50aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSk7Cgp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IHBpaTsKY29uc3QgaW50IG1vZCA9IDIxNDc0ODM2NDc7CmNvbnN0IGludCBpbmYgPSAxZTkgKyA3OwoKc2lnbmVkIG1haW4oKXsKICAgIGludCBuOyBjaW4gPj4gbjsKICAgIGludCBhW25dLCBiW25dOwogICAgdmVjdG9yPGludD4gczsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgfQogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAgICAgY2luID4+IGJbaV07CiAgICAgICAgaWYoaSA+IDApIHMucGIoYltpXSBeIGJbaSAtIDFdKTsKICAgIH0gcy5wYihJTlRfTUFYKTsKICAgIGZvcihpbnQgaSA9IDE7IGkgPCBuICogMiAtIDE7IGkrKyl7CiAgICAgICAgaW50IHggPSBhW2kgJSBuXSBeIGFbKGkgLSAxKSAlIG5dOwogICAgICAgIHMucGIoeCk7CiAgICB9CiAgICBpbnQga21wW24gKiAyICsgMV07CiAgICBrbXBbMF0gPSAwOwogICAgdmVjdG9yPHBhaXI8aW50LCBpbnQ+ID4gYW5zOwogICAgZm9yKGludCBpID0gMTsgaSA8IHMuc2l6ZSgpOyBpKyspewogICAgICAgIGludCBqID0ga21wW2kgLSAxXTsKICAgICAgICB3aGlsZShqID4gMCAmJiBzW2pdICE9IHNbaV0peyAgIC8vYWEjYWFhYWEKICAgICAgICAgICAgaiA9IGttcFtqIC0gMV07CiAgICAgICAgfQogICAgICAgIGlmKHNbal0gPT0gc1tpXSkgKytqOwogICAgICAgIGttcFtpXSA9IGo7CiAgICAgICAgaWYoaSA+IG4gLSAxICYmIGttcFtpXSA9PSBuIC0gMSl7CiAgICAgICAgICAgIGNvdXQgPDwgYlswXSA8PCBlbmRsOwogICAgICAgICAgICBpbnQgeCA9IGFbaSAtIG4gLSBuICsgMl0gXiBiWzBdOwogICAgICAgICAgICBhbnMucGIoe2kgLSBuIC0gbiArIDIsIHh9KTsKICAgICAgICB9CiAgICB9IGNvdXQgPDwgIi0tIjsKICAgIHNvcnQoYW5zLmJlZ2luKCksIGFucy5lbmQoKSk7CiAgICBmb3IocGlpIGkgOiBhbnMpIGNvdXQgPDwgaS5maXJzdCA8PCAiICIgPDwgaS5zZSA8PCAiXG4iOwogICAgcmV0dXJuIDA7Cn0K