#include <bits/stdc++.h>
#define ll long long int
#define ld long double
#define nl "\n"
#define ull unsigned long long
#define rv return void
#define str string
#define all(x) x.begin(), x.end()
#define allr(x) x.rbegin(), x.rend()
#define vec vector
#define fixed(n) fixed << setprecision(n)
#define Moageza ios::sync_with_stdio(false);cout.tie(NULL);cin.tie(NULL);
using namespace std;
const ll mod = 1e9+7;
struct SegmentTree{
private:
#define L 2*node+1
#define R 2*node+2
#define mid (l+r>>1)
ll sz,skip=LLONG_MAX;
vector<ll>seg,lazy;
void propegate(int l,int r,int node)
{
if(lazy[node]==LLONG_MAX)return;
if(l!=r)
{
lazy[L]=lazy[node];
lazy[R]=lazy[node];
}
seg[node]=lazy[node];
lazy[node]=LLONG_MAX;
}
void update(int l,int r,int node,int lx,int rx,ll val)
{
propegate(l,r,node);
if(l>rx||r<lx)
{
return;
}
if(l>=lx&&r<=rx)
{
lazy[node]=val;
propegate(l,r,node);
return;
}
update(l,mid,L,lx,rx,val);
update(mid+1,r,R,lx,rx,val);
seg[node]=min(seg[L],seg[R]);
}
ll query(int l,int r,int node,int lx,int rx)
{
propegate(l,r,node);
if(l>=lx&&r<=rx)
{
return seg[node];
}
if(l>rx||r<lx)
{
return skip;
}
// if I move right or left
// propegate(l,mid,L);
// propegate(mid+1,r,R);
return min(query(l,mid,L,lx,rx),query(mid+1,r,R,lx,rx));
}
public:
SegmentTree(int n){
sz=1;
while(sz<n)sz*=2;
seg=vector<ll>(sz*2,0);
lazy=vector<ll>(sz*2,0);
}
void update(int l,int r,ll val)
{
update(0,sz-1,0,l,r,val);
}
ll query(int l, int r) {
if( query(0, sz - 1, 0, l, r)==LLONG_MAX)return 0;
return query(0, sz - 1, 0, l, r);
}
};
void solve(){
int n,q;cin>>n>>q;
SegmentTree st(n);
while(q--)
{
int op;cin>>op;
if(op==1)
{
ll l,r,val;cin>>l>>r>>val;
st.update(l,r-1,val);
}
else
{
int l,r;cin>>l;
cout<<st.query(l,l)<<nl;
}
}
}
int main()
{
Moageza
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);
#endif
int t = 1;
// cin >> t;
while (t--) {
solve();
cout << nl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nIGludAojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgbmwgIlxuIgojZGVmaW5lIHVsbCB1bnNpZ25lZCBsb25nIGxvbmcKI2RlZmluZSBydiByZXR1cm4gdm9pZAojZGVmaW5lIHN0ciBzdHJpbmcKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLCB4LmVuZCgpCiNkZWZpbmUgYWxscih4KSB4LnJiZWdpbigpLCB4LnJlbmQoKQojZGVmaW5lIHZlYyB2ZWN0b3IKI2RlZmluZSBmaXhlZChuKSBmaXhlZCA8PCBzZXRwcmVjaXNpb24obikKI2RlZmluZSBNb2FnZXphIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjb3V0LnRpZShOVUxMKTtjaW4udGllKE5VTEwpOwp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsbCBtb2QgPSAxZTkrNzsKc3RydWN0IFNlZ21lbnRUcmVlewpwcml2YXRlOgojZGVmaW5lIEwgMipub2RlKzEKI2RlZmluZSBSIDIqbm9kZSsyCiNkZWZpbmUgbWlkIChsK3I+PjEpCiAgICBsbCBzeixza2lwPUxMT05HX01BWDsKICAgIHZlY3RvcjxsbD5zZWcsbGF6eTsKICAgIHZvaWQgcHJvcGVnYXRlKGludCBsLGludCByLGludCBub2RlKQogICAgewogICAgICAgIGlmKGxhenlbbm9kZV09PUxMT05HX01BWClyZXR1cm47CiAgICAgICAgaWYobCE9cikKICAgICAgICB7CiAgICAgICAgICAgIGxhenlbTF09bGF6eVtub2RlXTsKICAgICAgICAgICAgbGF6eVtSXT1sYXp5W25vZGVdOwoKICAgICAgICB9CiAgICAgICAgc2VnW25vZGVdPWxhenlbbm9kZV07CiAgICAgICAgbGF6eVtub2RlXT1MTE9OR19NQVg7CiAgICB9CiAgICB2b2lkIHVwZGF0ZShpbnQgbCxpbnQgcixpbnQgbm9kZSxpbnQgbHgsaW50IHJ4LGxsIHZhbCkKICAgIHsKICAgICAgICBwcm9wZWdhdGUobCxyLG5vZGUpOwogICAgICAgIGlmKGw+cnh8fHI8bHgpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmKGw+PWx4JiZyPD1yeCkKICAgICAgICB7CiAgICAgICAgICAgIGxhenlbbm9kZV09dmFsOwogICAgICAgICAgICBwcm9wZWdhdGUobCxyLG5vZGUpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHVwZGF0ZShsLG1pZCxMLGx4LHJ4LHZhbCk7CiAgICAgICAgdXBkYXRlKG1pZCsxLHIsUixseCxyeCx2YWwpOwogICAgICAgIHNlZ1tub2RlXT1taW4oc2VnW0xdLHNlZ1tSXSk7CiAgICB9CiAgICBsbCBxdWVyeShpbnQgbCxpbnQgcixpbnQgbm9kZSxpbnQgbHgsaW50IHJ4KQogICAgewogICAgICAgIHByb3BlZ2F0ZShsLHIsbm9kZSk7CiAgICAgICAgaWYobD49bHgmJnI8PXJ4KQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIHNlZ1tub2RlXTsKICAgICAgICB9CiAgICAgICAgaWYobD5yeHx8cjxseCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBza2lwOwogICAgICAgIH0KCS8vIGlmIEkgbW92ZSByaWdodCBvciBsZWZ0CgkvLyBwcm9wZWdhdGUobCxtaWQsTCk7CiAgICAgICAgLy8gcHJvcGVnYXRlKG1pZCsxLHIsUik7CiAgICAgICAgcmV0dXJuIG1pbihxdWVyeShsLG1pZCxMLGx4LHJ4KSxxdWVyeShtaWQrMSxyLFIsbHgscngpKTsKICAgIH0KcHVibGljOgogICAgU2VnbWVudFRyZWUoaW50IG4pewogICAgICAgIHN6PTE7CiAgICAgICAgd2hpbGUoc3o8bilzeio9MjsKICAgICAgICBzZWc9dmVjdG9yPGxsPihzeioyLDApOwogICAgICAgIGxhenk9dmVjdG9yPGxsPihzeioyLDApOwogICAgfQogICAgdm9pZCB1cGRhdGUoaW50IGwsaW50IHIsbGwgdmFsKQogICAgewogICAgICAgIHVwZGF0ZSgwLHN6LTEsMCxsLHIsdmFsKTsKICAgIH0KICAgIGxsIHF1ZXJ5KGludCBsLCBpbnQgcikgewogICAgICAgIGlmKCBxdWVyeSgwLCBzeiAtIDEsIDAsIGwsIHIpPT1MTE9OR19NQVgpcmV0dXJuIDA7CiAgICAgICAgcmV0dXJuIHF1ZXJ5KDAsIHN6IC0gMSwgMCwgbCwgcik7CiAgICB9Cn07CnZvaWQgc29sdmUoKXsKICBpbnQgbixxO2Npbj4+bj4+cTsKICAgIFNlZ21lbnRUcmVlIHN0KG4pOwogICAgd2hpbGUocS0tKQogICAgewogICAgICAgIGludCBvcDtjaW4+Pm9wOwogICAgICAgIGlmKG9wPT0xKQogICAgICAgIHsKICAgICAgICAgICAgbGwgbCxyLHZhbDtjaW4+Pmw+PnI+PnZhbDsKICAgICAgICAgICAgc3QudXBkYXRlKGwsci0xLHZhbCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGludCBsLHI7Y2luPj5sOwogICAgICAgICAgICBjb3V0PDxzdC5xdWVyeShsLGwpPDxubDsKICAgICAgICB9CiAgICB9Cn0KaW50IG1haW4oKQp7CiAgIE1vYWdlemEKICAgICNpZm5kZWYgT05MSU5FX0pVREdFCiAgICAgICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7ZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKICAgICNlbmRpZgogICAgaW50IHQgPSAxOwogICAgLy8gIGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIHNvbHZlKCk7CiAgICAgICAgY291dCA8PCBubDsKICAgIH0KICAgIHJldHVybiAwOwp9