#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
const int N=2000;
int c[N][N];
int id[N][N];
vector<int>v[N];
pair<int,int>br[N];
bool vis[N];
int cnt=0;
void dfs(int a, int w){
cnt++;
vis[a]=1;
for(auto b:v[a]){
if(c[a][b]>=w and vis[b]==0){
dfs(b,w);
}
}
}
signed main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++){
int a,b;
cin>>a>>b;
cin>>c[a][b];
c[b][a]=c[a][b];
id[a][b]=id[b][a]=i;
v[a].pb(b);
v[b].pb(a);
br[i]={a,b};
}
int q;
cin>>q;
for(int i=0;i<q;i++){
int t;
cin>>t;
if(t==1){
int idx,w;
cin>>idx>>w;
int a=br[idx].ff,b=br[idx].ss;
c[a][b]=c[b][a]=w;
}
else{
int x,w;
cnt=0;
cin>>x>>w;
for(int i=0;i<=n;i++)vis[i]=0;
dfs(x,w);
cout<<cnt<<endl;
}
}
}