#include <bits/stdc++.h>
using namespace std;

void bfstraversal(int graph[5][5])
{
	bool visited[5];
    queue<int>q;
    int source=4;
    for(int i=0;i<5;i++)
	{
		visited[i]=false;
	}
    q.push(source);
    visited[source]=true;
    while(!q.empty())
    {
    	int v= q.front();
    	q.pop();
    	printf("%d ",v);
    	for(int i=0;i<5;i++)
    	{
    		if(!visited[i] && graph[v][i])
    		{
    			q.push(i);
    			visited[i]=true;
    		}
    	}
    }
}

int main() 
{
    int graph[5][5]={{0,1,0,0,1},
	                {0,0,1,0,0},
	                {0,1,0,1,1},
	                {0,0,1,0,1},
	                {1,0,0,1,0}};
bfstraversal(graph);
	return 0;
}