/*khanghaicode da loiihunter*/
/*--------------------------*/
/*Ai doc cai nay la gay*/
/*Whoever reads this is gay*/
/*Celui qui lit ceci est gay*/
/*Wer das liest, ist schwul*/
/*khong code thi thoi t la mot con cho*/
/*chim trong man dem nazuna cuu lay toi*/
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⠀⣤⣤⣤⣤⣤⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⠿⠟⠉⠉⠀⠉⠁⠘⢉⣉⣛⠛⣿⠻⠷⣶⣄⡀⠀⠀⠀⢀⣴⣿⣶⣶⡾⣿⡿⠟
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡾⠟⠋⠁⠀⡄⠀⠀⠀⠀⠀⢰⠈⢿⡏⠻⣿⣿⣷⣮⠉⠃⣴⣦⡾⢫⡏⠉⠉⣥⣿⣿⣶
// ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡾⠃⣀⣴⣾⣷⠋⠃⠁⠀⠀⠀⠀⠀⠀⠈⠘⠀⠁⡏⠹⣿⣦⡀⠀⢙⢿⣥⣥⠶⠟⠛⠛⠉
// ⠀⠀⠐⠶⢶⣖⡒⠲⠦⠤⢤⣼⡟⢻⠷⡿⠛⠁⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⢠⠈⢯⠻⣄⢠⠆⣿⣹⡷⢦⡄
// ⠀⢀⣨⣿⠋⢉⣀⣀⣠⣤⣶⡟⣳⢋⡞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣦⣧⡄⢀⠀⠀⠀⢨⣦⠈⣿⠘⣿⣉⣀⣠⣏
// ⠾⠿⠻⠿⣿⣿⣿⡿⣿⠿⢹⣿⢏⣿⠁⠀⠀⠀⢠⠀⣀⣴⡟⠀⠀⠀⠀⠀⠀⡏⠃⠻⠾⠀⠀⠸⢹⠀⠘⣷⣿⣻⡟⢿⠛⢷
// ⠀⠀⠀⠀⠉⠁⠀⣠⣿⣷⣿⡟⢸⡇⠀⠀⡀⣀⣼⢾⠛⡇⣷⢰⢰⢸⢸⡆⢸⠇⢠⣀⠀⢀⡀⠀⣬⠀⠀⡸⣿⡿⢷⣶⣤⣼
// ⠀⠀⠀⠀⠀⠀⢀⣿⣦⢠⣿⠁⣿⠀⡄⣼⣿⡍⢿⣄⠆⠃⠋⠈⠈⠈⠀⠁⢠⣄⣾⣭⣤⣬⣥⣼⡏⠀⠀⡇⣿⡇⣿⣅⠸⠇⣇
// ⠀⠀⠀⠀⠀⢠⡞⠉⢹⣸⠇⠀⣿⡄⣇⢻⣿⡳⢈⣸⣶⣖⣆⠀⠀⠀⠀⠀⠈⠚⠉⠉⠉⠙⢻⣿⡷⠀⠀⠀⢻⣷⢈⡿⠦⣤⡟
// ⠀⠀⠀⠀⠀⢈⣿⣤⣤⡿⠀⠀⠙⢻⣟⠛⣥⣾⠟⠋⠁⠀⠀⠀⠀⡖⠀⠀⠀⠀⠀⠀⠂⣿⡾⠁⠀⣀⠀⠀⢸⣿⠸⣧⠐⠁⢸
// ⠀⠀⠀⠀⠀⣿⡀⠙⣿⡇⠀⠀⠀⠸⣿⣷⠛⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣼⠟⠁⣀⡤⡿⠀⠀⣼⠻⠏⠉⡃⠴⣇
// ⠀⠀⠀⠀⠀⣽⠿⣿⣿⠁⢀⣤⡄⠀⢻⣿⣶⡏⠀ ⠀⠀⢀⣀⣤⣤⣶⠶⠿⣛⣿⣟⣯⣶⣿⣿⣿⠃⠀⣰⡿⢛⡷⠀⠃⢀⣿
// ⠀⠀⠀⠀⠀⢿⣶⣼⣿⢀⣾⣧⠀⠀⡰⣿⣿⡁⠀⠀⠀⣼⣿⣿⠏⠁⠀⠀⠀⠙⠉⠉⠉⣹⣿⢟⡟⢠⡾⢫⣴⡿⣷⣦⣴⠏⠁
// ⠀⠀⠀⠀⢰⣟⣀⣻⣿⣿⣷⣿⣦⣠⣿⣿⡽⣿⣄⠀⠀⢹⣿⡃⠀⠀⠀⠀⠀⠀⠀⣀⣴⣯⣀⣾⣷⡟⣱⣟⣼⣷⣶⡸⢿⣀⣠⣤⣴⣶
// ⠀⠀⠀⠀⠈⣿⠛⢻⣿⣿⠽⠿⠈⣻⡟⣿⣿⣿⡻⣿⣤⣀⠙⠿⣤⣤⡄⠀⠀⠤⠘⠙⣿⣿⣿⣿⠟⢠⣿⠟⢁⣠⣯⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠻⣶⠾⣿⡟⣸⣏⠛⢯⣄⣸⣄⣼⡧⠛⢿⡿⠙⢶⣤⣀⠀⠀⠀⢀⣠⣾⡿⠉⡾⢿⡴⠋⢀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⢻⣆⣨⡿⣃⣩⣿⣦⣌⡉⠻⢏⠁⠀⠀⣻⠀⠸⣿⣿⣿⣷⡾⠛⣿⠋⠀⠀⠀⠈⠇⣴⠉⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠀⠀⣻⣿⣿⣿⣿⣿⣿⣿⣿⣦⣼⠇⢷⣄⠇⡄⠀⣿⣿⣿⣿⡇⠞⠀⡄⠀⠾⠆⠀⠀⣿⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⢠⣶⣿⣿⣿⡿⠿⠻⣿⣽⣷⣿⣆⠀⠀⠙⠷⣅⠀⢿⣿⣿⣿⡅⠀⠀⡟⡜⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣷⣾⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠹⠀⠸⣿⣿⣿⣷⡀⠸⢰⠁⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⢰⣿⣿⣿⣿⡟⠇⠈⠀⠀⢸⣿⣿⣿⡿⠛⠉⠉⠙⠻⣿⣿⣿⣿⣿⣿
// ⠀⠀⠀⠀⠀⠈⢻⣿⣿⡟⣿⣯⣼⠟⠋⠻⢿⣿⣿⣇⠀⠀⠀⡰⢠⣿⣿⣿⣿⣿⠀⢳⣀⣀⢿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿
#include <bits/stdc++.h>
using namespace std;
int n,m;
vector<int>g[100001];
int a[100001];
int sus[100001];
vector<int>ds[100001];
vector<int>nen;
int cnt[100001];
int findsus(int x){
if(!sus[x])return x;
return sus[x]=findsus(sus[x]);
}
void unionsus(int x,int y){
x=findsus(x);
y=findsus(y);
if(x==y)return;
sus[y]=x;
cnt[x]+=cnt[y];
cnt[y]=0;
}
bool dd[100001];
void process(){
long long ans=0;
for(int val=1;val<=n;val++){
for(int u:ds[val]){
cnt[u]++;
for(int v:g[u]){
if(a[v]<=val)unionsus(u,v);
}
}
for(int &u:ds[val]){
u=findsus(u);
if(dd[u])continue;
dd[u]=1;
ans+=(long long)cnt[u]*(cnt[u]-1)/2;
cnt[u]=0;
}
for(int u:ds[val])dd[u]=0;
}
cout<<ans+n;
}
void init(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
nen.push_back(a[i]);
}
sort(nen.begin(),nen.end());
for(int i=1;i<=n;i++){
a[i]=lower_bound(nen.begin(),nen.end(),a[i])-nen.begin()+1;
ds[a[i]].push_back(i);
}
for(int u,v,i=0;i<m;i++){
cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
}
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);
#define NAME "poibeu"
if(fopen(NAME".inp","r")){
freopen(NAME".inp","r",stdin);
freopen(NAME".out","w",stdout);
}
//clock_t begin=clock();
init();
process();
//cerr<<"\n"<<(float)(clock()-begin)/CLOCKS_PER_SEC<<"s";
}