#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
vector<int>to[1010];
bool A[1010][1010],B[1010][1010];
void dfs1(int u,int o)
{
	if(A[o][u])return ;
	A[o][u]=true;
	for(int i=0;i<to[u].size();i++)
		dfs1(to[u][i],o);
	return ;
}
int book[1010];
bool vis[1010];
void dfs2(int u,int o,int s,bool ok=false)
{
	if(vis[u])return ;
	vis[u]=true;
	if(!ok)book[u]=s;
	else B[o][u]=(s!=book[u]);
	for(int i=0;i<to[u].size();i++)
		dfs2(to[u][i],o,s,ok);
	return ;
}
int U[200010],V[200010];
int main()
{
	int n,m;
	scanf("%d %d",&n,&m);
	for(int i=1;i<=m;i++)
	{
		scanf("%d %d",&U[i],&V[i]);
		to[U[i]].push_back(V[i]);
	}
	for(int i=1;i<=n;i++)dfs1(i,i);
	for(int i=1;i<=n;i++)
	{
		memset(book,0,sizeof(book));
		memset(vis,0,sizeof(vis));vis[i]=true;
		int num=to[i].size();
		for(int j=0;j<num;j++)
			dfs2(to[i][j],i,j);
		memset(vis,0,sizeof(vis));vis[i]=true;
		for(int j=num-1;j>=0;j--)
			dfs2(to[i][j],i,j,true);
	}
	for(int i=1;i<=m;i++)
		if(A[V[i]][U[i]]^B[U[i]][V[i]])printf("diff\n");
		else printf("same\n");
	return 0;
}