#include<bits/stdc++.h>
#define LL long long
inline void read(LL&a)
{
a=0;char c=getchar();
while(c<'0'||c>'9')c=getchar();
while(c>='0'&&c<='9')
{
a=(a<<1)+(a<<3)+c-'0';
c=getchar();
}
}
inline void write(LL a)
{
if(a<0){a=-a;putchar('-');}
if(a>=10)write(a/10);
putchar(a%10+'0');
}
inline bool get_order()
{
char c=getchar();bool b;
while(c<'a'||c>'z')c=getchar();
if(c=='a')b=true;
else b=false;
while(c>='a'&&c<='z')c=getchar();
return b;
}
#define pmaxn 6001
#define smaxn 210001
struct side
{
LL from,to,len,next;
}s[smaxn];
inline const bool comp(const side&a,const side&b)
{
if(a.len<b.len)return true;
return false;
}
LL n,m,q,k=0;
LL next[pmaxn<<3],to[pmaxn<<3],len[pmaxn<<3];
LL point[pmaxn],d=0,big_side_a;
inline void add(LL a,LL b,LL c)
{
next[++d]=point[a];
point[a]=d;
to[d]=b;
len[d]=c;
}
LL belong[pmaxn];
inline LL check(LL a)
{
if(a==belong[a])return a;
return belong[a]=check(belong[a]);
}
inline void init()
{
d=0;
for(LL i=1;i<=n;i++){belong[i]=i;point[i]=0;}
}
inline LL least_tree()
{
init();
LL group=n-1,i=0;
std::sort(s+1,s+1+k,comp);
while(group)
{
++i;
if(check(s[i].from)==check(s[i].to))continue;
group--;
belong[check(s[i].from)]=s[i].to;
add(s[i].from,s[i].to,s[i].len);
add(s[i].to,s[i].from,s[i].len);
}
return s[i].len;
}
bool vis[pmaxn];
LL ansa,ansb;
inline bool dfs(LL p,LL targ,LL has,bool which)
{
vis[p]=true;
if(p==targ){vis[p]=false;if(which)ansa=has;else ansb=has;return true;}
LL side=point[p],ans=0;
while(side)
{
if(!vis[to[side]])
if(dfs(to[side],targ,std::max(has,len[side]),which)){vis[p]=false;return true;}
side=next[side];
}
vis[p]=false;
return false;
}
int main()
{
read(n);read(m);
LL u,v,l,m1,m2,b1,b2;
for(LL i=1;i<=m;i++)
{
read(u);read(v);read(l);
s[++k].from=u;s[k].to=v;s[k].len=l;
}
memset(vis,false,sizeof(vis));
big_side_a=least_tree();
read(q);
while(q--)
{
if(get_order())
{
read(u);read(v);read(l);
s[++k].from=u;s[k].to=v;s[k].len=l;
if(s[k].len<big_side_a)big_side_a=least_tree();
}
else
{
read(m1);read(m2);
dfs(m1,m2,-1,true);
read(b1);read(b2);
dfs(b1,b2,-1,false);
if(ansa==ansb)puts("Baozika");
else puts("madoka");
}
}
return 0;
}