#include <stdio.h>

#define N 8

int graph[N][N] = {
    {0,1,1,0,0,0,0,0},
    {0,0,1,1,0,0,0,0},
    {0,0,0,1,1,0,0,0},
    {0,0,0,0,1,1,0,0},
    {0,0,0,0,0,1,1,0},
    {0,0,0,0,0,0,1,1},
    {0,0,0,0,0,0,0,1},
    {0,0,0,0,0,0,0,0}
};

int visited[N];

void dfs(int v)
{
    int i;

    visited[v] = 1;
    printf("%d ", v);

    for(i = 0; i < N; i++)
    {
        if(graph[v][i] == 1 && visited[i] == 0)
        {
            dfs(i);
        }
    }
}

int main(void)
{
    int i;

    for(i = 0; i < N; i++)
        visited[i] = 0;

    printf("一筆書きルート\n");

    dfs(0);

    printf("\n");

    return 0;
}