#include<stdio.h>
unsigned lj[1024][32];
unsigned vis[32];
int tp[1024];
void dfs(int u,int t)
{
	if(vis[u>>5]&(1<<(u&31)))
	{
		return;
	}
	vis[u>>5]|=(1<<(u&31));
	tp[u]=t;
	for(int i=0;i<32;i++)
	{
		if((lj[u][i]&vis[i])==lj[u][i])
		{
			continue;
		}
		for(int j=0;j<32;j++)
		{
			if(lj[u][i]&(1<<j))
			{
				dfs((i<<5)+j,t);
			}
		}
	}
}
int tp2[1005][1005];
int a[262144],b[262144];
int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=0;i<m;i++)
	{
		scanf("%d%d",&a[i],&b[i]);
		lj[a[i]][b[i]>>5]|=(1<<(b[i]&31));
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<32;j++)
		{
			vis[j]=0;
		}
		for(int j=1;j<=n;j++)
		{
			tp[j]=0;
		}
		vis[i>>5]|=(1<<(i&31));
		for(int j=1;j<=n;j++)
		{
			if(lj[i][j>>5]&(1<<(j&31)))
			{
				dfs(j,j);
			}
		}
		for(int j=1;j<=n;j++)
		{
			if(tp[j])
			{
				tp2[i][j]=1;
			}
		}
		for(int j=1;j<=n;j++)
		{
			if(tp[j]>0&&tp[j]<j)
			{
				tp2[i][j]=2;
			}
		}
		for(int j=0;j<32;j++)
		{
			vis[j]=0;
		}
		for(int j=1;j<=n;j++)
		{
			tp[j]=0;
		}
		vis[i>>5]|=(1<<(i&31));
		for(int j=n;j>=1;j--)
		{
			if(lj[i][j>>5]&(1<<(j&31)))
			{
				dfs(j,j);
			}
		}
		for(int j=1;j<=n;j++)
		{
			if(tp[j]>j)
			{
				tp2[i][j]=2;
			}
		}
	}
	for(int i=0;i<m;i++)
	{
		if((tp2[a[i]][b[i]]>=2)^(tp2[b[i]][a[i]]>=1))
		{
			printf("diff\n");
		}
		else
		{
			printf("same\n");
		}
	}
	return 0;
}