#include<cstdio>
#include<vector>
#include<map>
using std::vector;
using std::map;
const int M=1e5+5;
map<int,int> s;
int n,m;
int primes[M],cnt;
bool vis[M];
bool open[M];
void getprime(){
vis[1]=1;
for(int i=2;i<=n;++i)if(!vis[i]){
primes[++cnt]=i;
for(int j=2;i*j<=n;++j)vis[i*j]=1;
}
}
int main(){
scanf("%d%d",&n,&m);getchar();
getprime();
while(m--){
char ss[3];
int i;
scanf(" %s%d",ss,&i);
if(ss[0]=='+'){
if(open[i])puts("Already on");
else{
vector<int> v;
v.clear();
int q=i;
for(int k=1;k<=cnt&&q>1;++k){
int p=primes[k];
if(q%p==0){
if(s.find(p)!=s.end()){
printf("Conflict with %d\n",s[p]);
goto label;
}
v.push_back(p);
do{
q=q/p;
}while(q%p==0);
}
}
open[i]=1;
for(auto w:v)s[w]=i;
puts("Success");
label:printf("");
}
}
else{
if(!open[i])puts("Already off");
else{
int q=i;
for(int k=1;k<=cnt&&i>1;++k){
int p=primes[k];
if(q%p){
s.erase(p);
do{
q%=p;
}while(q%p==0);
}
}
open[i]=0;
puts("Success");
}
}
}
return 0;
}