#include<bits/stdc++.h>
using namespace std;
const int N=1005,M=200005;
int n,m,num,X[M],Y[M],cnt[N][N],flag1[N],flag2[N];
bool vis[N],ok[N][N],ok2[N][N];
vector<int> e[N];
void dfs(int u,int fa){
	vis[u]=1;
	ok[fa][u]=1;
	for(int i=0;i<e[u].size();i++){
		int v=e[u][i];
		if(vis[v])continue;
		dfs(v,fa);
	}
}
void dfs2(int u){
	vis[u]=1;
	for(int i=0;i<e[u].size();i++){
		int v=e[u][i];
		if(vis[v])continue;
		flag1[v]=cnt[u][v];
		dfs2(v);
	} 
}
void dfs3(int u){
	vis[u]=1;
	for(int i=e[u].size()-1;i>=0;i--){
		int v=e[u][i];
		if(vis[v])continue;
		flag2[v]=cnt[u][v];
		dfs3(v);
	} 
}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++){
		int u,v;
		scanf("%d%d",&u,&v);
		e[u].push_back(v);
		cnt[u][v]=++num;
		X[num]=u;
		Y[num]=v;
	}
	for(int i=1;i<=n;i++){
		dfs(i,i);
		memset(vis,0,sizeof(vis));
	}
	for(int i=1;i<=n;i++){
		dfs2(i);
		memset(vis,0,sizeof(vis));
		dfs3(i);
		memset(vis,0,sizeof(vis));
		for(int j=0;j<e[i].size();j++){
			int v=e[i][j];
			if(flag1[v]!=cnt[i][v]||flag2[v]!=cnt[i][v])ok2[i][v]=1;
		}
		memset(flag1,0,sizeof(flag1));
		memset(flag2,0,sizeof(flag2));
	}
	for(int i=1;i<=m;i++){
		if((ok[Y[i]][X[i]]^ok2[X[i]][Y[i]])==0)puts("same");
		else puts("diff");
	}
	return 0;
}