#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5,M=2e5+5;
int n,m,U[M],V[M];
vector<int>e[N],d[N];
stack<int>s;
bool vis[N];
int mp[N][N];
int vis1[N],vis2[N];
void dfs1(int u,int k)
{
    vis1[u]=k;
    for(int i=0;i<e[u].size();i++)
    {
        int v=e[u][i];if(vis1[v]) continue;
        dfs1(v,k);
    }
}
void dfs2(int u,int k)
{
    vis2[u]=k;
    for(int i=0;i<e[u].size();i++)
    {
        int v=e[u][i];if(vis2[v]) continue;
        dfs2(v,k);
    }
}
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d",&U[i],&V[i]);
        e[U[i]].push_back(V[i]);
        d[U[i]].push_back(V[i]);
    }
    for(int i=1;i<=n;i++)
    {
        memset(vis1,0,sizeof(vis1));
        memset(vis2,0,sizeof(vis2));
        vis1[i]=vis2[i]=666;
        int up=e[i].size();
        for(int j=0;j<up;j++)
            if(!vis1[e[i][j]])
            dfs1(e[i][j],d[i][j]);
        for(int j=up-1;j>=0;j--)
            if(!vis2[e[i][j]])
            dfs2(e[i][j],d[i][j]);
        for(int j=1;j<=n;j++)
            if(vis1[j]&&j!=i)
        {
            if(vis1[j]==vis2[j]) mp[i][j]=1;
            else mp[i][j]=2;
        }
    }
    for(int i=1;i<=m;i++)
    {
        if(mp[U[i]][V[i]]&&mp[V[i]][U[i]])
        {
            if(mp[U[i]][V[i]]==2) printf("same\n");
            else printf("diff\n");
        }
        else
        {
            if(mp[U[i]][V[i]]==1) printf("same\n");
            else printf("diff\n");
        }
    }
}
