#include <bits/stdc++.h>
using namespace std;
int a[1005],n,m;
int e[25][25];
int main()
{
ios :: sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m;
for (int i = 0;i < n;i ++)
{
cin >> a[i];
}
int x,y;
for (int i = 0;i < m;i ++)
{
cin >> x >> y;
e[x][y] = 1;
e[y][x] = 1;
}
for (int i = 1;i <= n;i ++)
{
for (int j = 1;j <= n;j ++)
{
cout << e[i][j] << ' ';
}
cout << endl;
}
vector<int> tmp;
int ans = 0;
bool flag = 1;
for (int i = 0;i < (1 << n);i ++)
{
tmp.clear();
flag = 1;
for (int j = 0;j < n;j ++)
{
if (i & (1 << j))
{
tmp.push_back(a[j]);
}
}
for(int i = 0;i < tmp.size() && flag;i ++)
{
for (int j = i+1;j < tmp.size();j ++)
{
if (e[tmp[i]][tmp[j]])
{
flag = 0;
break;
}
}
}
if(flag)
{
ans ++;
}
}
cout << ans;
return 0;
}