//#pragma GCC optimize("Ofast,unroll-loops")
//#pragma GCC target("avx2,tune=native")
#include <bits/stdc++.h>
using namespace std;
#define file "dynamite"
#define ff(i, a, b) for(auto i=(a); i<=(b); ++i)
#define ffr(i, b, a) for(auto i=(b); i>=(a); --i)
#define nl "\n"
#define ss " "
//#define pb push_back
#define pb emplace_back
#define fi first
#define se second
#define sz(s) (int)s.size()
#define all(s) (s).begin(), (s).end()
#define ms(a,x) memset(a, x, sizeof (a))
#define cn continue
#define re exit(0)
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<pii> vpii;
typedef vector<pll> vpll;
const int mod=1e9+7;
const int maxn=3e5+15;
const ll inf=1e17;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll ran(ll l, ll r)
{
return uniform_int_distribution<ll> (l, r)(rng);
}
inline void rf(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
if(fopen(file".inp","r")){
freopen(file".inp","r",stdin); freopen(file".out","w",stdout);
}
}
template<typename T> inline void add(T &x, const T &y)
{
x+=y;
if(x>=mod) x-=mod;
if(x<0) x+=mod;
}
template<typename T> inline bool maxi(T &a, T b)
{
if(a>=b) return 0;
a=b; return 1;
}
template<typename T> inline bool mini(T &a, T b)
{
if(a<=b) return 0;
a=b; return 1;
}
int n, m, val, cnt=0;
int l[maxn], kc[maxn];
bool spe[maxn];
vi g[maxn];
void dfs(int u, int par)
{
if(spe[u]) l[u]=0;
for(auto v:g[u]) if(v!=par)
{
dfs(v, u);
if(l[v]>-1 && l[v]+1>kc[u]) maxi(l[u], l[v]+1);
if(l[u]+1<=kc[v]) l[u]=-2, maxi(kc[u], kc[v]-1);
}
if(l[u]==val) ++cnt, l[u]=-2, kc[u]=val;
}
bool check()
{
ff(i, 1, n) l[i]=-1, kc[i]=-1e9;
dfs(1, 0);
if(l[1]>-1) ++cnt;
return cnt<=m;
}
signed main()
{
rf();
cin>>n>>m;
ff(i, 1, n) cin>>spe[i];
ff(i, 1, n-1)
{
int u, v; cin>>u>>v;
g[u].pb(v); g[v].pb(u);
}
int l=0, r=n/m+1, ans=-1;
while(l<=r)
{
int mid=(l+r)>>1;
val=mid; cnt=0;
if(check()) ans=mid, r=mid-1;
else l=mid+1;
}
cout<<ans;
re;
}
Ly8jcHJhZ21hIEdDQyBvcHRpbWl6ZSgiT2Zhc3QsdW5yb2xsLWxvb3BzIikKLy8jcHJhZ21hIEdDQyB0YXJnZXQoImF2eDIsdHVuZT1uYXRpdmUiKQojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgZmlsZSAiZHluYW1pdGUiCiNkZWZpbmUgZmYoaSwgYSwgYikgZm9yKGF1dG8gaT0oYSk7IGk8PShiKTsgKytpKQojZGVmaW5lIGZmcihpLCBiLCBhKSBmb3IoYXV0byBpPShiKTsgaT49KGEpOyAtLWkpCiNkZWZpbmUgbmwgIlxuIgojZGVmaW5lIHNzICIgIgovLyNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgcGIgZW1wbGFjZV9iYWNrCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBzeihzKSAoaW50KXMuc2l6ZSgpCiNkZWZpbmUgYWxsKHMpIChzKS5iZWdpbigpLCAocykuZW5kKCkKI2RlZmluZSBtcyhhLHgpIG1lbXNldChhLCB4LCBzaXplb2YgKGEpKQojZGVmaW5lIGNuIGNvbnRpbnVlCiNkZWZpbmUgcmUgZXhpdCgwKQoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVsbDsKdHlwZWRlZiBsb25nIGRvdWJsZSBsZDsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiB2ZWN0b3I8bGw+IHZsbDsKdHlwZWRlZiBwYWlyPGludCwgaW50PiBwaWk7CnR5cGVkZWYgcGFpcjxsbCwgbGw+IHBsbDsKdHlwZWRlZiB2ZWN0b3I8cGlpPiB2cGlpOwp0eXBlZGVmIHZlY3RvcjxwbGw+IHZwbGw7Cgpjb25zdCBpbnQgbW9kPTFlOSs3Owpjb25zdCBpbnQgbWF4bj0zZTUrMTU7CmNvbnN0IGxsIGluZj0xZTE3OwoKbXQxOTkzN182NCBybmcoY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKbGwgcmFuKGxsIGwsIGxsIHIpCnsKICAgIHJldHVybiB1bmlmb3JtX2ludF9kaXN0cmlidXRpb248bGw+IChsLCByKShybmcpOwp9CgppbmxpbmUgdm9pZCByZigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOyBjb3V0LnRpZShudWxscHRyKTsKICAgIGlmKGZvcGVuKGZpbGUiLmlucCIsInIiKSl7CiAgICAgICAgZnJlb3BlbihmaWxlIi5pbnAiLCJyIixzdGRpbik7IGZyZW9wZW4oZmlsZSIub3V0IiwidyIsc3Rkb3V0KTsKICAgIH0KfQoKdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgYWRkKFQgJngsIGNvbnN0IFQgJnkpCnsKICAgIHgrPXk7CiAgICBpZih4Pj1tb2QpIHgtPW1vZDsKICAgIGlmKHg8MCkgeCs9bW9kOwp9Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYm9vbCBtYXhpKFQgJmEsIFQgYikKewogICAgaWYoYT49YikgcmV0dXJuIDA7CiAgICBhPWI7IHJldHVybiAxOwp9Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYm9vbCBtaW5pKFQgJmEsIFQgYikKewogICAgaWYoYTw9YikgcmV0dXJuIDA7CiAgICBhPWI7IHJldHVybiAxOwp9CgppbnQgbiwgbSwgdmFsLCBjbnQ9MDsKaW50IGxbbWF4bl0sIGtjW21heG5dOwpib29sIHNwZVttYXhuXTsKdmkgZ1ttYXhuXTsKCnZvaWQgZGZzKGludCB1LCBpbnQgcGFyKQp7CiAgICBpZihzcGVbdV0pIGxbdV09MDsKICAgIGZvcihhdXRvIHY6Z1t1XSkgaWYodiE9cGFyKQogICAgewogICAgICAgIGRmcyh2LCB1KTsKICAgICAgICBpZihsW3ZdPi0xICYmIGxbdl0rMT5rY1t1XSkgbWF4aShsW3VdLCBsW3ZdKzEpOwogICAgICAgIGlmKGxbdV0rMTw9a2Nbdl0pIGxbdV09LTIsIG1heGkoa2NbdV0sIGtjW3ZdLTEpOwogICAgfQogICAgaWYobFt1XT09dmFsKSArK2NudCwgbFt1XT0tMiwga2NbdV09dmFsOwp9Cgpib29sIGNoZWNrKCkKewogICAgZmYoaSwgMSwgbikgbFtpXT0tMSwga2NbaV09LTFlOTsKICAgIGRmcygxLCAwKTsKICAgIGlmKGxbMV0+LTEpICsrY250OwogICAgcmV0dXJuIGNudDw9bTsKfQoKc2lnbmVkIG1haW4oKQp7CiAgICByZigpOwogICAgY2luPj5uPj5tOwogICAgZmYoaSwgMSwgbikgY2luPj5zcGVbaV07CiAgICBmZihpLCAxLCBuLTEpCiAgICB7CiAgICAgICAgaW50IHUsIHY7IGNpbj4+dT4+djsKICAgICAgICBnW3VdLnBiKHYpOyBnW3ZdLnBiKHUpOwogICAgfQogICAgaW50IGw9MCwgcj1uL20rMSwgYW5zPS0xOwogICAgd2hpbGUobDw9cikKICAgIHsKICAgICAgICBpbnQgbWlkPShsK3IpPj4xOwogICAgICAgIHZhbD1taWQ7IGNudD0wOwogICAgICAgIGlmKGNoZWNrKCkpIGFucz1taWQsIHI9bWlkLTE7CiAgICAgICAgZWxzZSBsPW1pZCsxOwogICAgfQogICAgY291dDw8YW5zOwogICAgcmU7Cn0KCg==