#include <string>
#include <vector>
#include <iostream>
using namespace std;
int visited[200];
int answer = 0;
void dfs(vector<vector<int>>& connects, int idx, int group)
{
if (visited[idx] != 0)
{
return ;
}
visited[idx] = group;
for (auto& c : connects[idx])
{
if (visited[c] == 0)
dfs(connects, c, group);
}
}
int solution(int n, vector<vector<int>> computers) {
vector<vector<int>> connects(n, vector<int>());
for (int i = 0; i < n; i++)
{
// cout << i << " ";
for (int j = 0; j < n; j++)
{
if (i == j)
continue;
if (computers[i][j] == 1)
{
connects[i].push_back(j);
// cout << j << " ";
}
}
// cout << endl;
}
for (int i = 0; i < n; i++)
{
visited[i] = 0;
}
for (int i = 0; i < n; i++)
{
if (visited[i] == 0)
{
answer++;
dfs(connects, i, answer);
}
}
return answer;
}