#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define REP(i,n) for (int i = 0; i < n; i++)
#define FOR(i,a,b) for (int i = a; i < b; i++)
#define remax(a,b) a = max(a,b)
#define all(v) v.begin(),v.end()
typedef map<int,int> mii;
typedef pair<int,int> pii;
#define F first
#define S second
#define WL(t) while(t --)
#define sfl(x) scanf("%lld",&x);
#define sfi(x) scanf("%d",&x);
#define sfi2(x,y) scanf("%d%d",&x,&y);
#define pfi(x) printf("%d\n",x);
#define TRACE
#ifdef TRACE
#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1>
void __f(const char* name, Arg1&& arg1){
cerr << name << " : " << arg1 << std::endl;
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args){
const char* comma = strchr(names + 1, ',');cerr.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...);
}
#else
#define trace(...)
#endif
void solvethetestcase();
signed main(){
int t;
sfi(t);
WL(t){
solvethetestcase();
}
}
int n,m,dp[100005];
ll a[100005];
vector<pair<ll,pii> > edges;
mii cur;
void solvethetestcase(){
sfi2(n,m)
edges.clear();
FOR(i,1,n+1){
sfl(a[i])
dp[i] = 1;
}
REP(i,m){
int u,v; sfi2(u,v)
if(a[u] > a[v]){
edges.pb({a[u]-a[v],{v,u}});
}
else if(a[v] > a[u]){
edges.pb({a[v]-a[u],{u,v}});
}
}
sort(all(edges));
int ans = 1;
int i = 0;
while(i < edges.size()){
cur.clear();
if(dp[edges[i].S.S] < dp[edges[i].S.F]+1){
cur[edges[i].S.S] = dp[edges[i].S.F]+1;
}
for(int j = i+1; j <= edges.size(); j ++){
if(j == edges.size() or edges[j].F != edges[j-1].F){
i = j;
break;
}
if(dp[edges[j].S.S] < dp[edges[j].S.F]+1){
if(cur.find(edges[j].S.S) == cur.end()){
cur[edges[j].S.S] = dp[edges[j].S.F]+1;
}
else{
remax(cur[edges[j].S.S],dp[edges[j].S.F]+1);
}
}
}
for(auto x:cur) dp[x.F] = x.S;
}
FOR(i,1,n+1){
if(dp[i] > ans) ans = dp[i];
}
pfi(ans)
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIFJFUChpLG4pIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQojZGVmaW5lIEZPUihpLGEsYikgZm9yIChpbnQgaSA9IGE7IGkgPCBiOyBpKyspCiNkZWZpbmUgcmVtYXgoYSxiKSBhID0gbWF4KGEsYikKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLHYuZW5kKCkKdHlwZWRlZiBtYXA8aW50LGludD4gbWlpOwp0eXBlZGVmIHBhaXI8aW50LGludD4gcGlpOwkKI2RlZmluZSBGIGZpcnN0CiNkZWZpbmUgUyBzZWNvbmQKI2RlZmluZSBXTCh0KSB3aGlsZSh0IC0tKQoKI2RlZmluZSBzZmwoeCkgc2NhbmYoIiVsbGQiLCZ4KTsKI2RlZmluZSBzZmkoeCkgc2NhbmYoIiVkIiwmeCk7CiNkZWZpbmUgc2ZpMih4LHkpIHNjYW5mKCIlZCVkIiwmeCwmeSk7CiNkZWZpbmUgcGZpKHgpIHByaW50ZigiJWRcbiIseCk7CgojZGVmaW5lIFRSQUNFCgojaWZkZWYgVFJBQ0UKI2RlZmluZSB0cmFjZSguLi4pIF9fZigjX19WQV9BUkdTX18sIF9fVkFfQVJHU19fKQp0ZW1wbGF0ZSA8dHlwZW5hbWUgQXJnMT4Kdm9pZCBfX2YoY29uc3QgY2hhciogbmFtZSwgQXJnMSYmIGFyZzEpewoJY2VyciA8PCBuYW1lIDw8ICIgOiAiIDw8IGFyZzEgPDwgc3RkOjplbmRsOwp9CnRlbXBsYXRlIDx0eXBlbmFtZSBBcmcxLCB0eXBlbmFtZS4uLiBBcmdzPgp2b2lkIF9fZihjb25zdCBjaGFyKiBuYW1lcywgQXJnMSYmIGFyZzEsIEFyZ3MmJi4uLiBhcmdzKXsKCWNvbnN0IGNoYXIqIGNvbW1hID0gc3RyY2hyKG5hbWVzICsgMSwgJywnKTtjZXJyLndyaXRlKG5hbWVzLCBjb21tYSAtIG5hbWVzKSA8PCAiIDogIiA8PCBhcmcxPDwiIHwgIjtfX2YoY29tbWErMSwgYXJncy4uLik7Cn0KI2Vsc2UKI2RlZmluZSB0cmFjZSguLi4pCiNlbmRpZgoKdm9pZCBzb2x2ZXRoZXRlc3RjYXNlKCk7CgpzaWduZWQgbWFpbigpewoJaW50IHQ7CglzZmkodCk7CglXTCh0KXsKCQlzb2x2ZXRoZXRlc3RjYXNlKCk7Cgl9Cn0gICAKCmludCBuLG0sZHBbMTAwMDA1XTsKbGwgYVsxMDAwMDVdOwp2ZWN0b3I8cGFpcjxsbCxwaWk+ID4gZWRnZXM7Cm1paSBjdXI7Cgp2b2lkIHNvbHZldGhldGVzdGNhc2UoKXsKCXNmaTIobixtKQoJZWRnZXMuY2xlYXIoKTsKCUZPUihpLDEsbisxKXsKCQlzZmwoYVtpXSkKCQlkcFtpXSA9IDE7Cgl9CglSRVAoaSxtKXsKCQlpbnQgdSx2OyBzZmkyKHUsdikKCQlpZihhW3VdID4gYVt2XSl7CgkJCWVkZ2VzLnBiKHthW3VdLWFbdl0se3YsdX19KTsKCQl9CgkJZWxzZSBpZihhW3ZdID4gYVt1XSl7CgkJCWVkZ2VzLnBiKHthW3ZdLWFbdV0se3Usdn19KTsKCQl9Cgl9Cglzb3J0KGFsbChlZGdlcykpOwoJaW50IGFucyA9IDE7CglpbnQgaSA9IDA7Cgl3aGlsZShpIDwgZWRnZXMuc2l6ZSgpKXsKCQljdXIuY2xlYXIoKTsKCQlpZihkcFtlZGdlc1tpXS5TLlNdIDwgZHBbZWRnZXNbaV0uUy5GXSsxKXsKCQkJY3VyW2VkZ2VzW2ldLlMuU10gPSBkcFtlZGdlc1tpXS5TLkZdKzE7CgkJfQoJCWZvcihpbnQgaiA9IGkrMTsgaiA8PSBlZGdlcy5zaXplKCk7IGogKyspewoJCQlpZihqID09IGVkZ2VzLnNpemUoKSBvciBlZGdlc1tqXS5GICE9IGVkZ2VzW2otMV0uRil7CgkJCQlpID0gajsKCQkJCWJyZWFrOwoJCQl9CgkJCWlmKGRwW2VkZ2VzW2pdLlMuU10gPCBkcFtlZGdlc1tqXS5TLkZdKzEpewoJCQkJaWYoY3VyLmZpbmQoZWRnZXNbal0uUy5TKSA9PSBjdXIuZW5kKCkpewoJCQkJCWN1cltlZGdlc1tqXS5TLlNdID0gZHBbZWRnZXNbal0uUy5GXSsxOwoJCQkJfQoJCQkJZWxzZXsKCQkJCQlyZW1heChjdXJbZWRnZXNbal0uUy5TXSxkcFtlZGdlc1tqXS5TLkZdKzEpOwoJCQkJfQoJCQl9CgkJfQoJCWZvcihhdXRvIHg6Y3VyKSBkcFt4LkZdID0geC5TOyAKCX0KCUZPUihpLDEsbisxKXsKCQlpZihkcFtpXSA+IGFucykgYW5zID0gZHBbaV07Cgl9CglwZmkoYW5zKQp9