* 10 + c - '0', c = getchar();
return x * f;
}
int N, M, a[MAXN], block, siz[MAXN], flag[MAXN], rak...i++) a[i] = read(), tp[i] = i;
sort(tp + 1, tp + N + 1, comp);
for(int i = 1; i <= N; i++) rak...[tp[i]] = i;
for(int i = 1; i <= M; i++) {
int x = read(), y = read();
if(rak[x]...> rak[y]) v[x].push_back(y), siz[x]++;
else v[y].push_back(x), siz[y]++;
}
LL ans =