rt,已经傻了
// Problem: P3674 小清新人渣的本愿
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P3674
// Memory Limit: 125 MB
// Time Limit: 3000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include<bits/stdc++.h>
#define reg register int
#define INF (1<<30)
// #define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
#define y(x) (id[x])
#define f(x) (x/S+1)
#define int long long
// #pragma GCC optimize("Ofast")
using namespace std;
const int inf=1e9;
char buf[1<<23],*p1=buf,*p2=buf,obuf[1<<23],*O=obuf;
int read(){
int res=0,fs=1; char c=getchar();
while(!(c>='0' && c<='9')){ if(c=='-')fs=-1; c=getchar(); }
while(c>='0' && c<='9')res=res*10+c-'0',c=getchar();
return res*fs;
}
void print(int x){
if(x<0) { putchar('-'); x=-x;}
if(x>9) print(x/10);
putchar(x%10+'0');
}
int n,cnt,m,a[100005],ans,k,tmp,aw[1014141],id[1014141];
struct Q{
int l,r,x,idx,opt;
}q[100005];
struct D{
int l,r,x,idx;
}divv[100005];
char f[100005];
int S;
bool cmp(Q x,Q y){
return ((y(x.l)^y(y.l))?x.l<y.l:((y(x.l)&1)?x.r<y.r:x.r>y.r));
}
int t[100005];
int idx[100005];
bitset<100005>b,by;
const int N=100000;
void add(int x){
t[a[x]]++;
b[a[x]]=by[N-a[x]]=1;
}
void del(int x){
t[a[x]]--;
if(t[a[x]]==0) b[a[x]]=by[N-a[x]]=0;
}
bool solve(int x){
if(x==0) return 0;
for(int i=1;i<=sqrt(x)+5;i++){
if(x/i<=100000&&t[i]&&t[x/i]&&x%i==0) return 1;
}
return 0;
}//*
signed main() {
n=read();
m=read();
S=sqrt(n);
for(reg i=1;i<=n;i++) id[i]=f(i);//编号
for(reg i=1;i<=n;i++) a[i]=read();
int cnt=0,c=0;
for(reg i=1;i<=m;i++) {
int t1,t2,opt,l,r,x;
opt=read(),l=read(),r=read(),x=read();
// cnt++;
q[i]={l,r,x,i,opt};
}
sort(q+1,q+m+1,cmp);
reg l=1,r=0;
for(reg i=1;i<=m;i++){
int st=q[i].l,ed=q[i].r;
while(l<st) {
del(l);
++l;
}
while(l>st) {
l--;
add(l);
}
while(r<ed) {
r++;
add(r);
}
while(r>ed) {
del(r);
--r;
}
if(q[i].opt==1){//+
aw[q[i].idx]=(b&(b<<q[i].x)).any();
}else if(q[i].opt==2){//-
aw[q[i].idx]=((by>>(N-q[i].x))&b).any();
}else if(q[i].opt==3){//*
aw[q[i].idx]=solve(q[i].x);
}
}
for(reg i=1;i<=m;++i){
cout<<(aw[i]?"hana":"bi") <<'\n';
}
return 0;
}