#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
#define N 1010
vector <int> nxt[N]; bool arr[N][N],arr2[N][N],vis[N]; int vis2[N],vis1[N],num[N][N],n,m,fr[N*300],to[N*300],idx;
void init() {for(int i=1;i<=n;i++) vis[i]=false;}
void dfs(int p,int from)
{
	vis[p]=true,arr[from][p]=true;
	for(int i=0;i<(int)nxt[p].size();i++) if(!vis[nxt[p][i]]) dfs(nxt[p][i],from);
}
void dfs2(int p)
{
	vis[p]=true;
	for(int i=0;i<(int)nxt[p].size();i++) if(!vis[nxt[p][i]])
		vis1[nxt[p][i]]=num[p][nxt[p][i]],dfs2(nxt[p][i]);	
}
void dfs3(int p)
{
	vis[p]=true;
	for(int i=(int)nxt[p].size()-1;~i;i--) if(!vis[nxt[p][i]])
		vis2[nxt[p][i]]=num[p][nxt[p][i]],dfs3(nxt[p][i]);	
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1,a,b;i<=m;i++)
	{
		scanf("%d%d",&a,&b),nxt[a].push_back(b);
		num[a][b]=++idx,fr[idx]=a,to[idx]=b;
	}
	for(int i=1;i<=n;i++) dfs(i,i),init();
	for(int i=1;i<=n;i++)
	{
		dfs2(i),init(),dfs3(i),init();
		for(int j=0;j<(int)nxt[i].size();j++)
			if(vis1[nxt[i][j]]!=num[i][nxt[i][j]]||vis2[nxt[i][j]]!=num[i][nxt[i][j]])
				arr2[i][nxt[i][j]]=true;
		for(int j=1;j<=n;j++) vis1[i]=vis2[i]=0;
	}
	for(int i=1;i<=idx;i++) printf(arr[to[i]][fr[i]]^arr2[fr[i]][to[i]]?"diff\n":"same\n");
}