#include<iostream>
using namespace std;
struct grid//格子
{
int k;
int v;
grid* last;
};
class chest//小柜子
{
grid* head;
grid* p;
public:
chest()
{
head= NULL;
p = head;
}
void open(int j,int k)
{
grid* newp = new grid;
newp->k = k;
newp->v = j;
newp->last = p;
p = newp;
}
int cheeks(int j)
{
grid* m;
m = this->p;
while (m!= NULL)
{
if (m->v == j)
{
return m->k;
}
m = m->last;
}
return 0;
}
};
class bigchest
{
chest a[10000];
public:
void in(int n)
{
int i, j, k;
cin >> i >> j >> k;
if (i > n)
return;
else
a[i].open(j, k);
}
int cheek(int n)
{
int i,j,h=0;
cin >> i >> j;
if(i>n)
return 0;
else
h = a[i].cheeks(j);
return h;
}
};
int main()
{
int n, q;
int a[100],i=0,m=0;
cin >> n >> q;
bigchest s;
while (q > 0)
{
int l;
cin >> l;
if (l == 1)
{
s.in(n);
q--;
}
else if (l == 2)
{
a[i]=s.cheek(n);
q--;
i++;
m++;
}
}
for (i = 0; i < m; i++)
cout << a[i] << endl;
return 0;
}