#include "bits/stdc++.h"
using namespace std;
#define f1(n) for(int i=0;i<n;i++)
#define f2(m,n,q) for(int i=m;i<n;i+=q)
#define int long long
#define pb push_back
constexpr int N=1e5+5,inf=1e18;
using pr=pair<int,int>;
using ar=array<int,3>;
int n,m,q;
int u[N],v[N],d[N],ans;
bool vis[N];vector<pr>adj[N];
void dfs(int node,int w){
vis[node]=1;
for (auto it:adj[node]) {
if (vis[it.first])continue;
if (d[it.second]<w)continue;
ans++;
dfs(it.first,w);
}
}
signed main(){
ios::sync_with_stdio(false);cin.tie(nullptr);
cin>>n>>m;
f1(m) {
cin>>u[i]>>v[i]>>d[i];
adj[u[i]].pb({v[i],i});
adj[v[i]].pb({u[i],i});
}
int q;cin>>q;
while (q--) {
int t,x,y;cin>>t>>x>>y;
if (t==1)d[x-1]=y;
else {
memset(vis,0,sizeof vis);
ans=1;dfs(x,y);
cout<<ans<<'\n';
}
}
}