#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll m=1<<20;
ll s[m],n,q;
bool o[m];
set<ll>t[m];
ll g[2*m][2];
void f(){
for(ll i=2;i<m;i++)
{
if(s[i]==0)
{
for(ll j=i;j<m;j+=i)
{
s[j]=i;
}
}
}
}
void u(ll i,ll l,ll r)
{
i+=m;
g[i][0]=l;
g[i][1]=r;
for(i/=2;i>0;i/=2)
{
g[i][0]=max(g[2*i][0],g[2*i+1][0]);
g[i][1]=min(g[2*i][1],g[2*i+1][1]);
}
}
pair<ll,ll>qy(ll l,ll r,ll x=1,ll a=0,ll b=m-1)
{
if(l>b||r<a)
{
return{-1,m};
}
if(l<=a&&b<=r)
{
return{g[x][0],g[x][1]};
}
pair<ll,ll>c=qy(l,r,2*x,a,a+(b-a)/2);
pair<ll,ll>d=qy(l,r,2*x+1,a+(b-a)/2+1,b);
return
{
max(c.first,d.first),min(c.second,d.second)
};
}
void fx(ll x)
{
ll l=-1,r=m;
for(ll p=s[x],v=x;v!=1;)
{
auto& z=t[p];
auto i=z.lower_bound(x);
if(i!=z.begin())
{
i--;
l=max(l,*i);
}
auto j=z.upper_bound(x);
if(j!=z.end())
{
r=min(r,*j);
}
while(v%p==0)
{
v/=p;
}
p=s[v];
}
u(x,l,r);
}
void sw(ll x){
if(x==1)
{
return;
}
vector<ll> c;
ll l=-1,r=m;
for(ll p=s[x],v=x;v!=1;)
{
auto& z=t[p];
auto i=z.lower_bound(x);
if(i!=z.begin())
{
i--;
if(!o[x]&&g[m+*i][1]>x)
{
u(*i,g[m+*i][0],x);
}
else if(o[x]&&g[m+*i][1]==x)
{
c.push_back(*i);
}
l=max(*i,l);
}
auto j=z.upper_bound(x);
if(j!=z.end())
{
if(!o[x]&&g[m+*j][0]<x)
{
u(*j,x,g[m+*j][1]);
}
else if(o[x]&&g[m+*j][0]==x)
{
c.push_back(*j);
}
r=min(*j,r);
}
if(!o[x])
{
z.insert(x);
}
else
{
z.erase(x);
}
while(v%p==0)
{
v/=p;
}
p=s[v];
}
if(o[x])
{
u(x,-1,m);
o[x]=false;
}
else
{
u(x,l,r);
o[x]=true;
}
sort(c.begin(),c.end());
c.erase(unique(c.begin(),c.end()),c.end());
for(ll i:c)
{
fx(i);
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
f();
for(ll i=0;i<2*m;i++)
{
g[i][0]=-1;
g[i][1]=m;
}
cin>>n>>q;
while(q--)
{
string a;
cin>>a;
if(a[0]=='S')
{
ll x;
cin>>x;
sw(x);
}
else
{
ll l,r;
cin>>l>>r;
pair<ll,ll>x=qy(l,r);
if(x.first>=l||x.second<=r)
{
cout<<"DA"<<endl;
}
else
{
cout<<"NE"<<endl;
}
}
}
return 0;
}