/* AUTHOR: TUAN ANH - BUI */
// ~~ icebear ~~
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
typedef pair<int, ii> iii;
template<class X, class Y>
bool minimize(X &x, const Y &y) {
if (x > y) return x = y, true;
return false;
}
template<class X, class Y>
bool maximize(X &x, const Y &y) {
if (x < y) return x = y, true;
return false;
}
#define FOR(i,a,b) for(int i=(a); i<=(b); ++i)
#define FORR(i,a,b) for(int i=(a); i>=(b); --i)
#define REP(i, n) for(int i=0; i<(n); ++i)
#define RED(i, n) for(int i=(n)-1; i>=0; --i)
#define MASK(i) (1LL << (i))
#define BIT(S, i) (((S) >> (i)) & 1)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define all(x) x.begin(), x.end()
#define task "icebear"
/*END OF TEMPLATE. ICEBEAR AND THE CAT WILL WIN TST26 */
const int MOD = 1e9 + 7;
const int inf = (int)1e9 + 27092008;
const ll INF = (ll)1e18 + 27092008;
const int N = 5e5 + 5;
int n, q;
vector<int> G[N];
char c[N];
int cnt[N][26], sz[N], tin[N], ans[N], tout[N], tour[N], timer = 0, h[N];
vector<ii> Q[N];
void dfs(int u) {
tin[u] = ++timer;
tour[timer] = u;
sz[u] = 1;
for(int v: G[u]) {
h[v] = h[u] + 1;
dfs(v);
sz[u] += sz[v];
}
tout[u] = timer;
}
void sack(int u, bool keep = true) {
int hvy = 0;
for(int v : G[u]) if (sz[v] > sz[hvy])
hvy = v;
for(int v : G[u]) if (v != hvy)
sack(v, false);
if (hvy > 0) sack(hvy, true);
for(int v : G[u]) if (v != hvy) {
FOR(i, tin[v], tout[v]) {
int x = tour[i];
cnt[h[x]][c[x] - 'a']++;
}
}
cnt[h[u]][c[u] - 'a']++;
for(ii x : Q[u]) {
int k, i; tie(k, i) = x;
int odd = 0;
REP(c, 26) if (cnt[k][c] & 1)
odd++;
ans[i] = (odd <= 1);
}
if (keep == false) {
FOR(i, tin[u], tout[u]) {
int x = tour[i];
cnt[h[x]][c[x] - 'a']--;
}
}
}
void init(void) {
cin >> n >> q;
FOR(i, 2, n) {
int p; cin >> p;
G[p].pb(i);
}
FOR(i, 1, n) cin >> c[i];
FOR(i, 1, q) {
int v, k;
cin >> v >> k;
Q[v].pb(mp(k, i));
}
}
void process(void) {
h[1] = 1;
dfs(1);
sack(1);
FOR(i, 1, q) cout << (ans[i] ? "Yes\n" : "No\n");
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
if (fopen(task".inp", "r")) {
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
int tc = 1;
// cin >> tc;
while(tc--) {
init();
process();
}
return 0;
}
LyogQVVUSE9SOiBUVUFOIEFOSCAtIEJVSSAqLwovLyB+fiBpY2ViZWFyIH5+CiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gaWk7CnR5cGVkZWYgcGFpcjxpbnQsIGlpPiBpaWk7Cgp0ZW1wbGF0ZTxjbGFzcyBYLCBjbGFzcyBZPgogICAgYm9vbCBtaW5pbWl6ZShYICZ4LCBjb25zdCBZICZ5KSB7CiAgICAgICAgaWYgKHggPiB5KSByZXR1cm4geCA9IHksIHRydWU7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKdGVtcGxhdGU8Y2xhc3MgWCwgY2xhc3MgWT4KICAgIGJvb2wgbWF4aW1pemUoWCAmeCwgY29uc3QgWSAmeSkgewogICAgICAgIGlmICh4IDwgeSkgcmV0dXJuIHggPSB5LCB0cnVlOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiNkZWZpbmUgRk9SKGksYSxiKSBmb3IoaW50IGk9KGEpOyBpPD0oYik7ICsraSkKI2RlZmluZSBGT1JSKGksYSxiKSBmb3IoaW50IGk9KGEpOyBpPj0oYik7IC0taSkKI2RlZmluZSBSRVAoaSwgbikgZm9yKGludCBpPTA7IGk8KG4pOyArK2kpCiNkZWZpbmUgUkVEKGksIG4pIGZvcihpbnQgaT0obiktMTsgaT49MDsgLS1pKQojZGVmaW5lIE1BU0soaSkgKDFMTCA8PCAoaSkpCiNkZWZpbmUgQklUKFMsIGkpICgoKFMpID4+IChpKSkgJiAxKQojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQojZGVmaW5lIHRhc2sgImljZWJlYXIiCi8qRU5EIE9GIFRFTVBMQVRFLiBJQ0VCRUFSIEFORCBUSEUgQ0FUIFdJTEwgV0lOIFRTVDI2ICovCgpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsKY29uc3QgaW50IGluZiA9IChpbnQpMWU5ICsgMjcwOTIwMDg7CmNvbnN0IGxsIElORiAgPSAobGwpMWUxOCArIDI3MDkyMDA4Owpjb25zdCBpbnQgTiA9IDVlNSArIDU7CmludCBuLCBxOwp2ZWN0b3I8aW50PiBHW05dOwpjaGFyIGNbTl07CmludCBjbnRbTl1bMjZdLCBzeltOXSwgdGluW05dLCBhbnNbTl0sIHRvdXRbTl0sIHRvdXJbTl0sIHRpbWVyID0gMCwgaFtOXTsKdmVjdG9yPGlpPiBRW05dOwoKdm9pZCBkZnMoaW50IHUpIHsKICAgIHRpblt1XSA9ICsrdGltZXI7CiAgICB0b3VyW3RpbWVyXSA9IHU7CiAgICBzelt1XSA9IDE7CiAgICBmb3IoaW50IHY6IEdbdV0pIHsKICAgICAgICBoW3ZdID0gaFt1XSArIDE7CiAgICAgICAgZGZzKHYpOwogICAgICAgIHN6W3VdICs9IHN6W3ZdOwogICAgfQogICAgdG91dFt1XSA9IHRpbWVyOwp9Cgp2b2lkIHNhY2soaW50IHUsIGJvb2wga2VlcCA9IHRydWUpIHsKICAgIGludCBodnkgPSAwOwogICAgZm9yKGludCB2IDogR1t1XSkgaWYgKHN6W3ZdID4gc3pbaHZ5XSkKICAgICAgICBodnkgPSB2OwoKICAgIGZvcihpbnQgdiA6IEdbdV0pIGlmICh2ICE9IGh2eSkKICAgICAgICBzYWNrKHYsIGZhbHNlKTsKCiAgICBpZiAoaHZ5ID4gMCkgc2FjayhodnksIHRydWUpOwoKICAgIGZvcihpbnQgdiA6IEdbdV0pIGlmICh2ICE9IGh2eSkgewogICAgICAgIEZPUihpLCB0aW5bdl0sIHRvdXRbdl0pIHsKICAgICAgICAgICAgaW50IHggPSB0b3VyW2ldOwogICAgICAgICAgICBjbnRbaFt4XV1bY1t4XSAtICdhJ10rKzsKICAgICAgICB9CiAgICB9CgogICAgY250W2hbdV1dW2NbdV0gLSAnYSddKys7CiAgICBmb3IoaWkgeCA6IFFbdV0pIHsKICAgICAgICBpbnQgaywgaTsgdGllKGssIGkpID0geDsKICAgICAgICBpbnQgb2RkID0gMDsKICAgICAgICBSRVAoYywgMjYpIGlmIChjbnRba11bY10gJiAxKQogICAgICAgICAgICBvZGQrKzsKICAgICAgICBhbnNbaV0gPSAob2RkIDw9IDEpOwogICAgfQoKICAgIGlmIChrZWVwID09IGZhbHNlKSB7CiAgICAgICAgRk9SKGksIHRpblt1XSwgdG91dFt1XSkgewogICAgICAgICAgICBpbnQgeCA9IHRvdXJbaV07CiAgICAgICAgICAgIGNudFtoW3hdXVtjW3hdIC0gJ2EnXS0tOwogICAgICAgIH0KICAgIH0KfQoKdm9pZCBpbml0KHZvaWQpIHsKICAgIGNpbiA+PiBuID4+IHE7CiAgICBGT1IoaSwgMiwgbikgewogICAgICAgIGludCBwOyBjaW4gPj4gcDsKICAgICAgICBHW3BdLnBiKGkpOwogICAgfQogICAgRk9SKGksIDEsIG4pIGNpbiA+PiBjW2ldOwogICAgRk9SKGksIDEsIHEpIHsKICAgICAgICBpbnQgdiwgazsKICAgICAgICBjaW4gPj4gdiA+PiBrOwogICAgICAgIFFbdl0ucGIobXAoaywgaSkpOwogICAgfQp9Cgp2b2lkIHByb2Nlc3Modm9pZCkgewogICAgaFsxXSA9IDE7CiAgICBkZnMoMSk7CiAgICBzYWNrKDEpOwogICAgRk9SKGksIDEsIHEpIGNvdXQgPDwgKGFuc1tpXSA/ICJZZXNcbiIgOiAiTm9cbiIpOwp9CgoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpZiAoZm9wZW4odGFzayIuaW5wIiwgInIiKSkgewogICAgICAgIGZyZW9wZW4odGFzayIuaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3Blbih0YXNrIi5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBpbnQgdGMgPSAxOwovLyAgICBjaW4gPj4gdGM7CiAgICB3aGlsZSh0Yy0tKSB7CiAgICAgICAgaW5pdCgpOwogICAgICAgIHByb2Nlc3MoKTsKICAgIH0KICAgIHJldHVybiAwOwp9Cgo=