#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]*(r-l+1);
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+PjEpCiAgICBsbCBzeixza2lwPUxMT05HX01BWDsKICAgIHZlY3RvcjxsbD5zZWcsbGF6eTsKICAgIHZvaWQgcHJvcGVnYXRlKGludCBsLGludCByLGludCBub2RlKQogICAgewogICAgICAgIGlmKGxhenlbbm9kZV09PUxMT05HX01BWClyZXR1cm47CiAgICAgICAgaWYobCE9cikKICAgICAgICB7CiAgICAgICAgICAgIGxhenlbTF09bGF6eVtub2RlXTsKICAgICAgICAgICAgbGF6eVtSXT1sYXp5W25vZGVdOwoKICAgICAgICB9CiAgICAgICAgc2VnW25vZGVdPWxhenlbbm9kZV0qKHItbCsxKTsKICAgICAgICBsYXp5W25vZGVdPUxMT05HX01BWDsKICAgIH0KICAgIHZvaWQgdXBkYXRlKGludCBsLGludCByLGludCBub2RlLGludCBseCxpbnQgcngsbGwgdmFsKQogICAgewogICAgICAgIHByb3BlZ2F0ZShsLHIsbm9kZSk7CiAgICAgICAgaWYobD5yeHx8cjxseCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYobD49bHgmJnI8PXJ4KQogICAgICAgIHsKICAgICAgICAgICAgbGF6eVtub2RlXT12YWw7CiAgICAgICAgICAgIHByb3BlZ2F0ZShsLHIsbm9kZSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdXBkYXRlKGwsbWlkLEwsbHgscngsdmFsKTsKICAgICAgICB1cGRhdGUobWlkKzEscixSLGx4LHJ4LHZhbCk7CiAgICAgICAgc2VnW25vZGVdPW1pbihzZWdbTF0sc2VnW1JdKTsKICAgIH0KICAgIGxsIHF1ZXJ5KGludCBsLGludCByLGludCBub2RlLGludCBseCxpbnQgcngpCiAgICB7CiAgICAgICAgcHJvcGVnYXRlKGwscixub2RlKTsKICAgICAgICBpZihsPj1seCYmcjw9cngpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gc2VnW25vZGVdOwogICAgICAgIH0KICAgICAgICBpZihsPnJ4fHxyPGx4KQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIHNraXA7CiAgICAgICAgfQoJLy8gaWYgSSBtb3ZlIHJpZ2h0IG9yIGxlZnQKCS8vIHByb3BlZ2F0ZShsLG1pZCxMKTsKICAgICAgICAvLyBwcm9wZWdhdGUobWlkKzEscixSKTsKICAgICAgICByZXR1cm4gbWluKHF1ZXJ5KGwsbWlkLEwsbHgscngpLHF1ZXJ5KG1pZCsxLHIsUixseCxyeCkpOwogICAgfQpwdWJsaWM6CiAgICBTZWdtZW50VHJlZShpbnQgbil7CiAgICAgICAgc3o9MTsKICAgICAgICB3aGlsZShzejxuKXN6Kj0yOwogICAgICAgIHNlZz12ZWN0b3I8bGw+KHN6KjIsMCk7CiAgICAgICAgbGF6eT12ZWN0b3I8bGw+KHN6KjIsMCk7CiAgICB9CiAgICB2b2lkIHVwZGF0ZShpbnQgbCxpbnQgcixsbCB2YWwpCiAgICB7CiAgICAgICAgdXBkYXRlKDAsc3otMSwwLGwscix2YWwpOwogICAgfQogICAgbGwgcXVlcnkoaW50IGwsIGludCByKSB7CiAgICAgICAgaWYoIHF1ZXJ5KDAsIHN6IC0gMSwgMCwgbCwgcik9PUxMT05HX01BWClyZXR1cm4gMDsKICAgICAgICByZXR1cm4gcXVlcnkoMCwgc3ogLSAxLCAwLCBsLCByKTsKICAgIH0KfTsKdm9pZCBzb2x2ZSgpewogIGludCBuLHE7Y2luPj5uPj5xOwogICAgU2VnbWVudFRyZWUgc3Qobik7CiAgICB3aGlsZShxLS0pCiAgICB7CiAgICAgICAgaW50IG9wO2Npbj4+b3A7CiAgICAgICAgaWYob3A9PTEpCiAgICAgICAgewogICAgICAgICAgICBsbCBsLHIsdmFsO2Npbj4+bD4+cj4+dmFsOwogICAgICAgICAgICBzdC51cGRhdGUobCxyLTEsdmFsKTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgaW50IGwscjtjaW4+Pmw7CiAgICAgICAgICAgIGNvdXQ8PHN0LnF1ZXJ5KGwsbCk8PG5sOwogICAgICAgIH0KICAgIH0KfQppbnQgbWFpbigpCnsKICAgTW9hZ2V6YQogICAgI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgICAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKTtmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwogICAgI2VuZGlmCiAgICBpbnQgdCA9IDE7CiAgICAvLyAgY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgICAgICBjb3V0IDw8IG5sOwogICAgfQogICAgcmV0dXJuIDA7Cn0=