#include<stdio.h>
#include<stdlib.h>
#define N 5
int adj[N][N] =
{
    {0, 1, 1, 0, 0},  // 0 → 1, 2
    {0, 0, 0, 1, 1},  // 1 → 3, 4
    {0, 0, 0, 0, 0},  // 2
    {0, 0, 0, 0, 0},  // 3
    {0, 0, 0, 0, 0}   // 4
};

int visited[N] = {0};
void DFS(int i)
{
    visited[i] = 1;
    printf("%d ", i);
    for(int j = 0; j < N ; j++)
    {
        if(adj[i][j] == 1 && visited[j] == 0)
            DFS(j);
    }
}
int main()
{
    DFS(0);
    return 0;
}