#include<bits/stdc++.h>
using namespace std;
#define maxn 1005
struct node{
	int to;
	int id;
	node(int a,int b){
		to=a;
		id=b;
	}
	node(){}
};
int n,m;
int tot;
int vis[maxn];
int bh[maxn][maxn][3];
vector<node> e[maxn];
int u[maxn*maxn*2];
int v[maxn*maxn*2];
void dfs(int root,int fa,int b,int f){
	vis[root]=tot;
	bh[fa][root][f]=b;
	int len=e[root].size();
	for(int i=0;i<len;i++){
		if(vis[e[root][i].to]!=tot)
		dfs(e[root][i].to,fa,b,f);
	}
}
void s(int now){
	tot++;
	vis[now]=tot;
	int len=e[now].size();
//	cout<<now<<" "<<len<<endl; 
	for(int i=0;i<len;i++){
		if(vis[e[now][i].to]!=tot)
		dfs(e[now][i].to,now,e[now][i].id,0);
	}
	reverse(e[now].begin(),e[now].end());
	tot++;
	vis[now]=tot;
//	int len=e[now].size();
	for(int i=0;i<len;i++){
		if(vis[e[now][i].to]!=tot)
		dfs(e[now][i].to,now,e[now][i].id,1);
	}	
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++){
		scanf("%d%d",&u[i],&v[i]);
		e[u[i]].push_back(node(v[i],i));
	}
	for(int i=1;i<=n;i++){
		s(i);
	}
	for(int i=1;i<=m;i++){
		if((bh[u[i]][v[i]][0]!=i||bh[u[i]][v[i]][1]!=i) ^ 0 ^ (bh[v[i]][u[i]][0]!=0)){
			puts("diff");
		}
		else{
			puts("same");
		}
	}
}