#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
vector < vector<int> > v;
vector < long > suma;
int n,m;
ifstream f("arbore.in");
ofstream g("arbore.out");
void calc(int p, long s){
suma[p]+=s;
for(int i=0;i<v[p].size();i++){
calc(v[p][i],s);
}
}
int main(){
int i,j,x,y,op,p;
long s;
f>>n>>m;
for (i=0;i<=n;i++){
v.push_back(vector<int>());
suma.push_back(0);
}
for(i=1;i<=n-1;i++){
f>>x>>y;
if(x>y){
int aux=x;
x=y;
y=aux;
}
v[x].push_back(y);
}
for(i=1;i<=m;i++){
f>>op;
if(op==1){
f>>p>>s;
calc(p,s);
}
else {
f>>s;
bool ok=false;
for(int k=1;k<=n&&!ok;k++)
if(suma[k]==s){
ok=true;
g<<k<<'\n';
};
if(!ok)
g<<-1<<'\n';
}
}
f.close();
g.close();
return 0;
}