#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <map>
#include <cstring>
#include <string>
#include <cmath>
#include <cassert>
#include <ctime>
#include <algorithm>
#include <sstream>
#include <list>
#include <queue>
#include <deque>
#include <stack>
#include <cstdlib>
#include <cstdio>
#include <iterator>
#include <functional>
#include <unordered_set>
#include <unordered_map>
#include <stdio.h>
#include <bitset>
using namespace std;
#define ll long long
#define pb push_back
#define mp make_pair
#define f first
#define s second
const ll maxn = 1e6 + 1, maxm = 1e5 + 1;
const ll mod = 998244353, inf = 1e9;
int t, b;
int n;
int p[maxn], s[maxn], q[maxn];
ll lv[maxn], rv[maxn], is = 0;
vector<int> g[maxn];
void dfs(int v, int y){
if (is)
return;
for (auto to : g[v]){
dfs(to, y);
}
vector<pair<ll, int>> sc;
for (auto to : g[v]){
sc.pb(mp(lv[to] - y, 0));
sc.pb(mp(rv[to] + y, 1));
}
sc.pb(mp(s[v], 0));
sc.pb(mp(q[v], 1));
sort(sc.begin(), sc.end());
int curr = 0;
lv[v] = 1e9 + 1;
rv[v] = -1;
for (auto it : sc){
pair<ll, int> cur = it;
if (cur.s == 0){
curr += 1;
if (curr == (int)g[v].size() + 1){
lv[v] = min(lv[v], cur.f);
rv[v] = max(rv[v], cur.f);
}
}
else{
if (curr == (int)g[v].size() + 1){
rv[v] = max(rv[v], cur.f);
lv[v] = min(lv[v], cur.f);
}
curr -= 1;
}
}
if (lv[v] > rv[v])
is = 1;
}
bool check(int x){
is = 0;
dfs(1, x);
return (!is);
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
cin >> t >> b;
while (t--){
cin >> n;
for (int i = 2; i <= n; ++i){
cin >> p[i];
g[p[i]].pb(i);
}
for (int i = 1; i <= n; ++i){
cin >> s[i] >> q[i];
}
int l = 0, r = 1e9, ans = - 1;
while (l <= r){
int mid = (l + r) / 2;
if (check(mid)){
r = mid - 1, ans = mid;
}
else{
l = mid + 1;
}
}
cout << ans << '\n';
for (int i = 1; i <= n; ++i){
g[i].clear();
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPGNhc3NlcnQ+CiNpbmNsdWRlIDxjdGltZT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxsaXN0PgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxkZXF1ZT4KI2luY2x1ZGUgPHN0YWNrPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CiNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPGJpdHNldD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIGYgZmlyc3QKI2RlZmluZSBzIHNlY29uZAoKY29uc3QgbGwgbWF4biA9IDFlNiArIDEsIG1heG0gPSAxZTUgKyAxOwpjb25zdCBsbCBtb2QgPSA5OTgyNDQzNTMsIGluZiA9IDFlOTsKCmludCB0LCBiOwppbnQgbjsKaW50IHBbbWF4bl0sIHNbbWF4bl0sIHFbbWF4bl07CmxsIGx2W21heG5dLCBydlttYXhuXSwgaXMgPSAwOwp2ZWN0b3I8aW50PiBnW21heG5dOwp2b2lkIGRmcyhpbnQgdiwgaW50IHkpewogICAgaWYgKGlzKQogICAgICAgIHJldHVybjsKICAgIGZvciAoYXV0byB0byA6IGdbdl0pewogICAgICAgIGRmcyh0bywgeSk7CiAgICB9CiAgICB2ZWN0b3I8cGFpcjxsbCwgaW50Pj4gc2M7CiAgICBmb3IgKGF1dG8gdG8gOiBnW3ZdKXsKICAgICAgICBzYy5wYihtcChsdlt0b10gLSB5LCAwKSk7CiAgICAgICAgc2MucGIobXAocnZbdG9dICsgeSwgMSkpOwogICAgfQogICAgc2MucGIobXAoc1t2XSwgMCkpOwogICAgc2MucGIobXAocVt2XSwgMSkpOwogICAgc29ydChzYy5iZWdpbigpLCBzYy5lbmQoKSk7CiAgICBpbnQgY3VyciA9IDA7CiAgICBsdlt2XSA9IDFlOSArIDE7CiAgICBydlt2XSA9IC0xOwogICAgZm9yIChhdXRvIGl0IDogc2MpewogICAgICAgIHBhaXI8bGwsIGludD4gY3VyID0gaXQ7CiAgICAgICAgaWYgKGN1ci5zID09IDApewogICAgICAgICAgICBjdXJyICs9IDE7ICAgIAogICAgICAgICAgICBpZiAoY3VyciA9PSAoaW50KWdbdl0uc2l6ZSgpICsgMSl7CiAgICAgICAgICAgICAgICBsdlt2XSA9IG1pbihsdlt2XSwgY3VyLmYpOwogICAgICAgICAgICAgICAgcnZbdl0gPSBtYXgocnZbdl0sIGN1ci5mKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICBpZiAoY3VyciA9PSAoaW50KWdbdl0uc2l6ZSgpICsgMSl7CiAgICAgICAgICAgICAgICBydlt2XSA9IG1heChydlt2XSwgY3VyLmYpOwogICAgICAgICAgICAgICAgbHZbdl0gPSBtaW4obHZbdl0sIGN1ci5mKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjdXJyIC09IDE7CiAgICAgICAgfQogICAgfQogICAgaWYgKGx2W3ZdID4gcnZbdl0pCiAgICAgICAgaXMgPSAxOwp9CmJvb2wgY2hlY2soaW50IHgpewogICAgaXMgPSAwOwogICAgZGZzKDEsIHgpOwogICAgcmV0dXJuICghaXMpOwp9CmludCBtYWluKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCksIGNvdXQudGllKDApOwogICAgY2luID4+IHQgPj4gYjsKICAgIHdoaWxlICh0LS0pewogICAgICAgIGNpbiA+PiBuOwogICAgICAgIGZvciAoaW50IGkgPSAyOyBpIDw9IG47ICsraSl7CiAgICAgICAgICAgIGNpbiA+PiBwW2ldOwogICAgICAgICAgICBnW3BbaV1dLnBiKGkpOwogICAgICAgIH0KICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpewogICAgICAgICAgICBjaW4gPj4gc1tpXSA+PiBxW2ldOwogICAgICAgIH0KICAgICAgICBpbnQgbCA9IDAsIHIgPSAxZTksIGFucyA9IC0gMTsKICAgICAgICB3aGlsZSAobCA8PSByKXsKICAgICAgICAgICAgaW50IG1pZCA9IChsICsgcikgLyAyOwogICAgICAgICAgICBpZiAoY2hlY2sobWlkKSl7CiAgICAgICAgICAgICAgICAgciA9IG1pZCAtIDEsIGFucyA9IG1pZDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgIGwgPSBtaWQgKyAxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgYW5zIDw8ICdcbic7CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKXsKICAgICAgICAgICAgZ1tpXS5jbGVhcigpOwogICAgICAgIH0KICAgIH0KfQo=