/*
TASK:bands
LANG:C++
*/
#include <stdio.h>
#include <stack>
#include <iostream>
using namespace std;
stack<int>a[20000];

void put_in(long int i,long int j,int c)
{
     for (int k=i;k<j;k++) a[k].push(c);
 }

void get_out(long int i,long int j)
{
     for (int k=i;k<j;k++) a[k].pop();
}

void show_field(long int i)
{
     cout<<a[i].top()<<endl;
 }


main()
{
//read
long int n,m;
cin>>n>>m;
for (int i=0;i<n;i++) a[i].push(0);
//****
long int i,j;
int t,c;
for (long int k=1;k<=m;k++)
    {     
          cin>>t;
          switch (t)
          {
                 case 1 : cin>>i>>j>>c;put_in(i,j,c);break;
                 case 2 : cin>>i>>j;get_out(i,j);break;
                 case 3 : cin>>i;show_field(i);break;
          };
    };
}
