#include<bits/stdc++.h>
#define pii pair<int,int>
#define mp make_pair
#define pb push_back
using namespace std;
const int N=1e3+7;
const int M=2e5+7;
template <class I>
inline void read(I &x){
    int f=1;
    char c;
    for(c=getchar();c<'0'||c>'9';c=getchar()) if(c=='-') f=-1;
    for(x=0;c>='0'&&c<='9';x=(x<<3)+(x<<1)+(c&15),c=getchar());
    x*=f;
}
int a[N][N];
vector <pii > e;
vector <int> p[N];
int n,m;
void dfs1(int x,int fa){
	a[fa][x]=1;
	for(unsigned int i=0;i<p[x].size();i++){
		int y=p[x][i];
		if(!a[fa][y]) dfs1(y,fa);
	}
}
int pd[N][2];
int b[N][N];
void dfs2(int x,int tag,int o){
    pd[x][o]=tag;
    for(int i=0;i<p[x].size();i++)
        if(!pd[p[x][i]][o])
            dfs2(p[x][i],tag,o);
}
int main(){
	read(n),read(m);
	for(int i=1,x,y;i<=m;i++) read(x),read(y),e.pb(mp(x,y)),p[x].pb(y);
	for(int i=1;i<=n;i++)
		dfs1(i,i);
	for(int i=1;i<=n;i++){
		memset(pd,0,sizeof(pd));
		pd[i][0]=pd[i][1]=i;
		for(unsigned int j=0;j<p[i].size();j++)
			if(!pd[p[i][j]][0])
				dfs2(p[i][j],p[i][j],0);
		for(int j=p[i].size()-1;j>=0;j--)
			if(!pd[p[i][j]][1])
				dfs2(p[i][j],p[i][j],1);
		for(unsigned int j=0;j<p[i].size();j++){
			int y=p[i][j];
			b[i][y]=!(pd[y][0]==pd[y][1]);
		}
	}
	for(unsigned int i=0;i<e.size();i++){
		int x=e[i].first,y=e[i].second;
		if(a[y][x]^b[x][y]) puts("diff");
		else puts("same");
	}
	return 0;
}