2026-04-06 17:32:41 +09:00

41 lines
589 B
C

#include <stdio.h>
#define MAX 100000
int G, P, gi, res;
int parent[MAX+1];
void init_uf();
int find(int x);
void Union(int x);
int main() {
scanf("%d %d", &G, &P);
init_uf();
for(int i=0; i<P; i++) {
scanf("%d",&gi);
if(find(gi) == 0) break;
Union(gi);
res++;
}
printf("%d\n", res);
return 0;
}
void init_uf() {
for(int i=0; i<=G; i++) parent[i] = i;
}
int find(int x) {
if(x != parent[x]) return parent[x] = find(parent[x]);
return parent[x];
}
void Union(int x) {
parent[find(x)] = find(x)-1;
}