#include <stdio.h>
#include <stdbool.h>
bool postoji(int u, int v, int n, int m[][]);
main()
{
    int n, q, a, u, v;
    char c;
    scanf("%d %d", &n, &q);
    int m[n][n];
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            m[i][j] = 5;
        }
    }
    for(int i = 0; i < q; i++)
    {
        scanf("%d %d %d", &a, &u, &v);
        if(a == 1)
        {
            scanf("%s", &c);
            m[u-1][v-1] = 1;
        }
        else if(a == 2)
        {
            if(postoji(u - 1, v - 1, n, m))
                printf("1\n");
            else
                printf("0\n");
        }

    }
}

bool postoji(int u, int v, int n, int m[][])
{
        for(int i = 0; i < n; i++)
        {

            if(m[u][i] == 1)
            {
                if(i == v)
                    return true;
                m[u][i] = 5;
                 return postoji(i, v, n, m);
            }
        }
        return false;
}
/*
9 8
1 1 2 a
1 2 3 a
1 3 4 a
1 3 5 a
1 4 7 a
1 5 6 a
1 6 9 a
2 1 8
*/