#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int n, m;
vector<int> v[2][2020];
bitset<500000> b[2][2020];
void dfs(int u, int t) {
	for(auto x : v[t][u]) {
		b[t][x] |= b[t][u];
		dfs(x, t);
	}
}
int main() {
	cin.tie(0)->sync_with_stdio(0);
	cin >> n >> m;
	for(int i=1;i<=n;i++) {
		int x, y; cin >> x >> y;
		v[0][x].push_back(i);
		v[1][y].push_back(i);
	}
	for(int i=0;i<m;i++) {
		int x, y; cin >> x >> y;
		b[0][x][i] = b[1][y][i] = 1;
	}
	dfs(0, 0), dfs(0, 1);
	for(int i=1;i<=n;i++) cout << (b[0][i] & b[1][i]).count() << "\n";
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |