#include <bits/stdc++.h>
using namespace std;
#define cini(x) int x; cin >> x;
void fasterIO()
{
ios::sync_with_stdio(0);
#ifndef DEBUG
cin.tie(0);
#endif
}
int N, h;
vector<int> t;
void push(int i)
{
for(int j = h; j > 0; --j) {
int s = i >> j;
if(t[s] != -1) {
t[2 * s] = t[s];
t[2 * s + 1] = t[s];
t[s] = -1;
}
}
}
int gett(int i)
{
i += N;
int answer = t[i];
for(; i > 0; i >>= 1) {
if(t[i] != -1) {
answer = t[i];
}
}
return answer;
}
void sett(int l, int r, int v)
{
l += N;
r += N;
push(l);
push(r);
for(int hi = h; l < r; l >>= 1, r >>= 1, --hi) {
if(l & 1) {
t[l] = v;
l++;
}
if(r & 1) {
r--;
t[r] = v;
}
}
}
int main()
{
fasterIO();
int n, m;
cin >> n >> m;
h = 8 * sizeof(h) - __builtin_clz(n);
N = 1 << h;
t.resize(2 * N, 0);
for(int i = 1; i < N; ++i) {
t[i] = -1;
}
while(m-- > 0) {
cini(a);
if(a == 1) {
int l, r, v;
cin >> l >> r >> v;
sett(l, r, v);
}
else {
cini(i);
cout << gett(i) << "\n";
}
}
return 0;
}