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

#include <iostream>
#include <vector>

using namespace std;

#define MAXN 20001

int band[MAXN], n, m; 

class Inter {
public:  
    int i, j;
    int c;
    
    Inter( int ii, int jj, int cc )
    {
        i = ii;
        j = jj;
        c = cc;
    }  
};

int main()
{
   vector<Inter>  v;
   int k;
   
   scanf( "%d %d", &n, &m );
   
   v.push_back( Inter( 0, n, 0 ) );
   
   while( m-- ) {
     int cmd;
     
     scanf( "%d", &cmd );
     
     if( cmd == 1 ) {
         int b, e, c;
         
         scanf( "%d %d %d", &b, &e, &c );
         v.push_back( Inter( b, e, c ) );
     }
     else if( cmd == 2 ) {
          int s, e;
          
          scanf( "%d %d", &s, &e );
          
          for( k = v.size() - 1; k >= 0; k-- )
              if( ( v[k].i == s ) && ( v[k].j == e ) ) 
                 v.erase( v.begin() + k );
     }
     else {
          int index;
          scanf( "%d", &index );
          
          for( k = v.size() - 1; k >= 0; k-- ) 
              if( ( index >= v[k].i ) && ( index <= v[k].j ) ) {
                  printf( "%d\n", v[k].c );
                  break;
              }
     }
  }
  
  
  return 0;
}
