#include<bits/stdc++.h>
using namespace std;
const int MAXN = 305;
const int MAXM = MAXN * MAXN / 2 * 4;
const int SOURCE = MAXN - 2;
const int DESTINATION = MAXN - 1;
const int inf = 0x3f3f3f3f;
int head[MAXN],to[MAXM],nxt[MAXM],cap[MAXM],temphead[MAXN];
int dist[MAXN];
int lst;
int n,m;
void add_edge(int f,int t,int cap_)
{
nxt[lst] = head[f];
head[f] = lst;
to[lst] = t;
cap[lst++] = cap_;
}
void add_flow_edge(int f,int t,int cap_)
{
add_edge(f,t,cap_);
add_edge(t,f,0);
}
void add_bi_flow_edge(int a,int b,int cap_)
{
add_flow_edge(a,b,cap_);
add_flow_edge(b,a,cap_);
}
int bfs()
{
memset(dist,0x3f,sizeof dist);
dist[SOURCE] = 0;
queue<int> q;
q.push(SOURCE);
while(q.size())
{
int cur = q.front();
q.pop();
for(int i=head[cur];i!=-1;i=nxt[i])
{
int t = to[i];
if(cap[i]==0 || dist[t]!=inf)
continue;
dist[t] = dist[cur] + 1,q.push(t);
if(t == DESTINATION)
return true;
}
}
return false;
}
int dfs(int cur,int flow)
{
if(cur == DESTINATION)
return flow;
for(int &i=temphead[cur];i!=-1;i=nxt[i])
{
int t = to[i];
int ret;
if(cap[i] && dist[t] == dist[cur] + 1 && (ret = dfs(t , min(flow,cap[i]))) )
{
cap[i] -= ret;
cap[i^1] += ret;
return ret;
}
}
return 0;
}
int max_flow()
{
int ret = 0;
while(bfs())
{
memcpy(temphead,head,sizeof head);
int temp;
while((temp = dfs(SOURCE,inf)))
ret += temp;
}
return ret;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
while(cin>>n>>m, n||m)
{
memset(head,-1,sizeof head);
lst = 0;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
if(x==0)
add_flow_edge(SOURCE,i,1);
else
add_flow_edge(i,DESTINATION,1);
}
for(int i=0;i<m;i++)
{
int a,b;
cin>>a>>b;
add_bi_flow_edge(a,b,1);
}
cout<<max_flow()<<"\n";
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTUFYTiA9IDMwNTsKY29uc3QgaW50IE1BWE0gPSBNQVhOICogTUFYTiAvIDIgKiA0Owpjb25zdCBpbnQgU09VUkNFID0gTUFYTiAtIDI7CmNvbnN0IGludCBERVNUSU5BVElPTiA9IE1BWE4gLSAxOwpjb25zdCBpbnQgaW5mID0gMHgzZjNmM2YzZjsKCmludCBoZWFkW01BWE5dLHRvW01BWE1dLG54dFtNQVhNXSxjYXBbTUFYTV0sdGVtcGhlYWRbTUFYTl07CmludCBkaXN0W01BWE5dOwppbnQgbHN0OwppbnQgbixtOwoKdm9pZCBhZGRfZWRnZShpbnQgZixpbnQgdCxpbnQgY2FwXykKewogICAgbnh0W2xzdF0gPSBoZWFkW2ZdOwogICAgaGVhZFtmXSA9IGxzdDsKICAgIHRvW2xzdF0gPSB0OwogICAgY2FwW2xzdCsrXSA9IGNhcF87Cn0KCnZvaWQgYWRkX2Zsb3dfZWRnZShpbnQgZixpbnQgdCxpbnQgY2FwXykKewogICAgYWRkX2VkZ2UoZix0LGNhcF8pOwogICAgYWRkX2VkZ2UodCxmLDApOwp9Cgp2b2lkIGFkZF9iaV9mbG93X2VkZ2UoaW50IGEsaW50IGIsaW50IGNhcF8pCnsKICAgIGFkZF9mbG93X2VkZ2UoYSxiLGNhcF8pOwogICAgYWRkX2Zsb3dfZWRnZShiLGEsY2FwXyk7Cn0KCmludCBiZnMoKQp7CiAgICBtZW1zZXQoZGlzdCwweDNmLHNpemVvZiBkaXN0KTsKICAgIGRpc3RbU09VUkNFXSA9IDA7CiAgICBxdWV1ZTxpbnQ+IHE7CiAgICBxLnB1c2goU09VUkNFKTsKICAgIHdoaWxlKHEuc2l6ZSgpKQogICAgewogICAgICAgIGludCBjdXIgPSBxLmZyb250KCk7CiAgICAgICAgcS5wb3AoKTsKICAgICAgICBmb3IoaW50IGk9aGVhZFtjdXJdO2khPS0xO2k9bnh0W2ldKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHQgPSB0b1tpXTsKICAgICAgICAgICAgaWYoY2FwW2ldPT0wIHx8IGRpc3RbdF0hPWluZikKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICBkaXN0W3RdID0gZGlzdFtjdXJdICsgMSxxLnB1c2godCk7CiAgICAgICAgICAgIGlmKHQgPT0gREVTVElOQVRJT04pCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7Cn0KCmludCBkZnMoaW50IGN1cixpbnQgZmxvdykKewogICAgaWYoY3VyID09IERFU1RJTkFUSU9OKQogICAgICAgIHJldHVybiBmbG93OwogICAgZm9yKGludCAmaT10ZW1waGVhZFtjdXJdO2khPS0xO2k9bnh0W2ldKQogICAgewogICAgICAgIGludCB0ID0gdG9baV07CiAgICAgICAgaW50IHJldDsKICAgICAgICBpZihjYXBbaV0gJiYgZGlzdFt0XSA9PSBkaXN0W2N1cl0gKyAxICYmIChyZXQgPSBkZnModCAsIG1pbihmbG93LGNhcFtpXSkpKSApCiAgICAgICAgewogICAgICAgICAgICBjYXBbaV0gLT0gcmV0OwogICAgICAgICAgICBjYXBbaV4xXSArPSByZXQ7CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0KCmludCBtYXhfZmxvdygpCnsKICAgIGludCByZXQgPSAwOwogICAgd2hpbGUoYmZzKCkpCiAgICB7CiAgICAgICAgbWVtY3B5KHRlbXBoZWFkLGhlYWQsc2l6ZW9mIGhlYWQpOwogICAgICAgIGludCB0ZW1wOwogICAgICAgIHdoaWxlKCh0ZW1wID0gZGZzKFNPVVJDRSxpbmYpKSkKICAgICAgICAgICAgcmV0ICs9IHRlbXA7CiAgICB9CiAgICByZXR1cm4gcmV0Owp9CgppbnQgbWFpbigpCnsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIHdoaWxlKGNpbj4+bj4+bSwgbnx8bSkKICAgIHsKICAgICAgICBtZW1zZXQoaGVhZCwtMSxzaXplb2YgaGVhZCk7CiAgICAgICAgbHN0ID0gMDsKICAgICAgICBmb3IoaW50IGk9MTtpPD1uO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGludCB4OwogICAgICAgICAgICBjaW4+Png7CiAgICAgICAgICAgIGlmKHg9PTApCiAgICAgICAgICAgICAgICBhZGRfZmxvd19lZGdlKFNPVVJDRSxpLDEpOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBhZGRfZmxvd19lZGdlKGksREVTVElOQVRJT04sMSk7CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT0wO2k8bTtpKyspCiAgICAgICAgewogICAgICAgICAgICBpbnQgYSxiOwogICAgICAgICAgICBjaW4+PmE+PmI7CiAgICAgICAgICAgIGFkZF9iaV9mbG93X2VkZ2UoYSxiLDEpOwogICAgICAgIH0KICAgICAgICBjb3V0PDxtYXhfZmxvdygpPDwiXG4iOwogICAgfQogICAgcmV0dXJuIDA7Cn0K