#include <bits/stdc++.h>
using namespace std;
#define ll long long
vector<vector<long long>>adj;
vector<bool>visited;
vector<ll>dists;
void dfs(ll n){
visited[n]=1;
for(ll&a:adj[n]){
if(!visited[a]){
visited[a]=1;
dists[a]=dists[n]+1;
dfs(a);
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n,m;
cin>> n>>m;
visited.assign(n+1,0);
dists.assign(n+1,0);
adj.resize(n+1);
for(int i=0;i<m;i++){
int q;
cin>>q;
if(q==1){
int x;
cin>>x;
dfs(1);
if(dists[x]==0){
if(x==1){
cout<<0<<"\n";
}
else cout<<-1<<"\n";
}
else{
cout<<dists[x]<<"\n";
}
}
else {
int x,y;
cin>>x>>y;
adj[x].push_back(y);
adj[y].push_back(x);
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nIAp2ZWN0b3I8dmVjdG9yPGxvbmcgbG9uZz4+YWRqOwogICAgdmVjdG9yPGJvb2w+dmlzaXRlZDsKICAgIHZlY3RvcjxsbD5kaXN0czsKICB2b2lkIGRmcyhsbCBuKXsKICAgIAogICAgICAgIHZpc2l0ZWRbbl09MTsKICAgICAgIGZvcihsbCZhOmFkaltuXSl7CiAgICAgICAgaWYoIXZpc2l0ZWRbYV0pewogICAgICAgICAgICB2aXNpdGVkW2FdPTE7CiAgICAgICAgICAgIGRpc3RzW2FdPWRpc3RzW25dKzE7CiAgICAgICAgICAgIGRmcyhhKTsKICAgICAgICB9CiAgICAgICB9CiAgICB9CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAKICAgIGludCBuLG07CiAgICBjaW4+PiBuPj5tOwogICAgdmlzaXRlZC5hc3NpZ24obisxLDApOwogICAgZGlzdHMuYXNzaWduKG4rMSwwKTsKICAgIGFkai5yZXNpemUobisxKTsKICAgIGZvcihpbnQgaT0wO2k8bTtpKyspewogICAgICAgIGludCBxOwogICAgICAgIGNpbj4+cTsKICAgICAgICBpZihxPT0xKXsKICAgICAgICAgICAgaW50IHg7CiAgICAgICAgICAgIGNpbj4+eDsKICAgICAgICAgICAgZGZzKDEpOwogICAgICAgICAgICBpZihkaXN0c1t4XT09MCl7CiAgICAgICAgICAgICAgICBpZih4PT0xKXsKICAgICAgICAgICAgICAgICAgICBjb3V0PDwwPDwiXG4iOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBjb3V0PDwtMTw8IlxuIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgY291dDw8ZGlzdHNbeF08PCJcbiI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGludCB4LHk7CiAgICAgICAgICAgIGNpbj4+eD4+eTsKICAgICAgICAgICAgYWRqW3hdLnB1c2hfYmFjayh5KTsKICAgICAgICAgICAgYWRqW3ldLnB1c2hfYmFjayh4KTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQ==