The program returns me 1. I think that there is a mistake in one of the cycles. But I cant find where.

Code:#include<iostream> #include<vector> #include<queue.h> #define NMAX 1024 using namespace std; vector <int> a[NMAX]; int n; int s[NMAX]; void input() { int m; cin>>n>>m; for(int i=1;i<=m;i++) { int u,v; cin>>u>>v; a[u].push_back(v); a[v].push_back(u); } } int used[100]; void bfs(int u) { queue<int>q; q.push(u); while(!q.empty()) { u=q.front(); q.pop(); cout<<u<<" "; for(int j=0;j<a[u].size();j++) { int v=a[u][j]; if(s[v]==0); s[v]=1; } } cout<<endl; } int main() { input(); bfs(1); return 0; }