/*
TASK:bands
LANG:C++
*/

#include <iostream>
using namespace std;

const int mn=20002;
char line[mn];
unsigned long long int lc[mn];
int N,M;

int main()
{
    int col,p,p2,i,j,code,i2;
    int flag;
    cin>>N>>M;
    for(p=0;p<M;p++){
       cin>>code;
       if(code==1){ 
                    cin>>i>>j>>col; 
                    for(;i<=j;i++){ line[i]=col; if(N<8) lc[i]=lc[i]*256+col; } 
       }
       else if(code==2){
            cin>>i>>j;
            if(N<8){ 
            flag=0;
            p2=lc[i]%256;
            for(i2=i;i2<=j;i2++) if(line[i2]!=p2){ flag=1; break;}
            if(!flag){
                       for(;i<=j;i++){ lc[i]/=256;  line[i]=lc[i]%256; }
                       }
                       }  
       }else if(code==3){cin>>i; cout<<static_cast<int>(line[i])<<endl; }
    }
    return 0;
}
