#include <string>
#include <vector>
using namespace std;
bool dfs(vector<vector<int>>& computers, int i){
if(computers[i][i]==0){
return false;
}
computers[i][i]=0;
for(int j=0;j<computers[i].size();j++){
if(computers[i][j]) dfs(computers,j);
}
return true;
}
int solution(int n, vector<vector<int>> computers) {
int answer = 0;
for(int i = 0;i<computers.size();i++){
if(computers[i][i] && dfs(computers,i))
answer++;
}
return answer;
}