#include<bits/stdc++.h>
#define rint register int
#define ull unsigned long long
#define pii pair<int,int>
#define int long long
using namespace std;
const int N=2e6+10;
const int inf=3e9+10;
int n,m,a[N];
ull xr[N],val[N],t[N];
int g[N],op[N],x[N],y[N];
int lowbit(int x){
return x&-x;
}
void add(int x,int w){
for(int i=x;i<=n;i+=lowbit(i)) t[i]^=w;
}
ull sum(int x){
ull num=0;
if(x==0) return 0;
for(int i=x;i;i-=lowbit(i)) num^=t[i];
return num;
}
struct node{
int mx,mi;
friend node operator +(node x,node y){
return (node){max(x.mx,y.mx),min(x.mi,y.mi)};
}
}tr[N<<2];
void push_up(int p){
tr[p].mx=max(tr[p<<1].mx,tr[p<<1|1].mx);
tr[p].mi=min(tr[p<<1].mi,tr[p<<1|1].mi);
}
void build(int p,int l,int r){
if(l==r) {
tr[p].mi=tr[p].mx=a[l];
return ;
}
int mid=l+r>>1;
build(p<<1,l,mid);
build(p<<1|1,mid+1,r);
push_up(p);
}
void update(int p,int l,int r,int x,int w){
if(l==r){
tr[p].mx=tr[p].mi=w;return ;
}
int mid=l+r>>1;
if(x<=mid) update(p<<1,l,mid,x,w);
else update(p<<1|1,mid+1,r,x,w);
push_up(p);
}
node query(int p,int l,int r,int x,int y){
if(x<=l&&r<=y) return tr[p];
int mid=l+r>>1;
node res=(node){-inf,inf};
if(x<=mid) res=res+query(p<<1,l,mid,x,y);
if(y>mid) res=res+query(p<<1|1,mid+1,r,x,y);
return res;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(NULL),cout.tie(NULL);int cnt=0;
cin>>n>>m;mt19937_64 rng(time(0));
for(int i=1;i<=n;i++){
cin>>a[i];g[++cnt]=a[i];g[++cnt]=a[i]-1;
}
build(1,1,n);
for(int i=1;i<=m;i++){
cin>>op[i]>>x[i]>>y[i];
if(op[i]==1) g[++cnt]=y[i],g[++cnt]=y[i]-1;
}
sort(g+1,g+1+cnt);
int tot=unique(g+1,g+1+cnt)-g-1;
for(int i=1;i<=tot;i++) val[i]=rng()*rng(),xr[i]=xr[i-1]^val[i];
for(int i=1;i<=n;i++){
int t=lower_bound(g+1,g+1+tot,a[i])-g;
add(i,val[t]);
}
for(int i=1;i<=m;i++){
if(op[i]==1){
int t1=lower_bound(g+1,g+1+tot,a[x[i]])-g;
int t2=lower_bound(g+1,g+1+tot,y[i])-g;
update(1,1,n,x[i],y[i]);add(x[i],val[t1]^val[t2]);a[x[i]]=y[i];
}
else{
node res=query(1,1,n,x[i],y[i]);
int t1=lower_bound(g+1,g+1+tot,res.mx)-g;
int t2=lower_bound(g+1,g+1+tot,res.mi-1)-g;
if((ull)(sum(y[i])^sum(x[i]-1))==(ull)(xr[t1]^xr[t2])) cout<<"damushen"<<'\n';
else cout<<"yuanxing"<<'\n';
}
}
return 0;
}