import
java.util.*;
public
class
Main {
static
void
queriesToFindUnique(
int
[][] a,
int
n,
int
[][] Q,
int
m) {
ArrayList<HashSet<Integer>> v =
new
ArrayList<>(n);
HashMap<Integer, Integer> ind =
new
HashMap<>();
for
(
int
i =
0
; i < n; i++) {
HashSet<Integer> set =
new
HashSet<>();
set.add(a[i][
0
]);
v.add(set);
ind.put(i, i);
}
for
(
int
i =
0
; i < m; i++) {
int
x = Q[i][
0
];
int
y = Q[i][
1
];
--x;
--y;
if
(v.get(ind.get(x)).size() <= v.get(ind.get(y)).size()) {
for
(
int
el : v.get(ind.get(x))) {
v.get(ind.get(y)).add(el);
}
v.get(ind.get(x)).clear();
}
else
{
for
(
int
el : v.get(ind.get(y))) {
v.get(ind.get(x)).add(el);
}
v.get(ind.get(y)).clear();
Collections.swap(v, ind.get(x), ind.get(y));
}
System.out.print(v.get(ind.get(y)).size() +
" "
);
}
System.out.println();
}
public
static
void
main(String[] args) {
int
N =
6
, M =
5
;
int
[][] A = {{
1
}, {
1
}, {
1
}, {
2
}, {
2
}, {
3
}};
int
[][] Q = {
{
1
,
2
}, {
6
,
4
}, {
5
,
1
}, {
3
,
6
}, {
4
,
6
}
};
queriesToFindUnique(A, N, Q, M);
}
}