#include <queue>
#include <vector>

const int MAXN = 100 * 1000 + 10;

bool mark[MAXN];
int vector<int> adj[MAXN];

void bfs(int v) {
    queue<int> q;
    
    mark[v] = 1;
    q.push(v);
    
    while(q.size()) {
        v = q.front(); //    راس ابتدایی را از صف بر میداریم
        q.pop();
        // کار‌ها‌ی پیش‌ترتیب را اینجا مینویسیم
        for(int i = 0; i < adj[v].size(); i++) {
            int u = adj[v][i];
            
            if (mark[u] == 1) //    قبلا این راس را به صف اضافه نکرده باشیم
                continue;
            
            mark[u] = 1;
            q.push(u);
        }
        
    }
}