#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,cnt,sum,x;
struct node{
int x,id,w;
}a[200005];
bool cmp(node a,node b){
return a.x<b.x;
}
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
int id;
cin>>id;
if(id==1){
int l,r,w;
cin>>l>>r>>w;
a[++cnt]={l,1,w};
a[++cnt]={r+1,1,w};
}
if(id==2){
int x,w;
cin>>x>>w;
a[++cnt]={x,2,w};
}
if(id==3){
int x,w;
cin>>x>>w;
a[++cnt]={x,3,w};
sum^=w;
}
}
sort(a+1,a+cnt+1,cmp);
int maxn=LONG_LONG_MIN;
for(int i=1;i<=cnt;i++){
if(a[i].id==1){
sum^=a[i].w;
if(sum>=maxn){
maxn=sum;
x=a[i].x;
}
}else{
sum^=a[i].w;
if(sum>=maxn){
maxn=sum;
x=a[i].x;
}
sum^=a[i].w;
}
}
cout<<maxn<<" "<<x;
return 0;
}