#include <bits/stdc++.h>
using namespace std;
const int oo = 0x3f3f3f3f;
int an, adj[5009], to[5009 + 5009], ant[5009 + 5009];
void add(int u, int v) {
  to[an] = v;
  ant[an] = adj[u];
  adj[u] = an++;
  swap(u, v);
  to[an] = v;
  ant[an] = adj[u];
  adj[u] = an++;
}
int n, a, b, c, d;
int fid;
int dfs(int u, int pai) {
  if (u == a || u == b || u == c || u == d) fid = u;
  bool any = 0;
  int r = 0;
  for (int it = adj[u]; ~it; it = ant[it]) {
    int v = to[it];
    if (v != pai) {
      any = 1;
      r += dfs(v, u);
    }
  }
  if (!any) return 1;
  return r;
}
int sa, sb, scc, sd, s, sz[5009], tots;
bool mark[5009][5009];
bool knapsack(int lc, int hc) {
  if (lc == 0) return 1;
  for (int(i) = (0); (i) < (s + 1); ++(i))
    memset(mark[i], 0, (hc + 1) * sizeof(bool));
  mark[0][0] = 1;
  for (int(i) = (1); (i) < (s + 1); ++(i)) {
    int v = sz[i - 1];
    for (int(j) = (0); (j) < (hc + 1); ++(j)) {
      mark[i][j] = mark[i - 1][j];
      if (j >= v && mark[i - 1][j - v]) {
        if (j >= lc) return 1;
        mark[i][j] = 1;
      }
    }
  }
  return 0;
}
bool proc() {
  if (tots % 2 != 0) return 0;
  if (max(sa, sb) >= tots / 2) return 0;
  int lo = (tots / 2) - 1 - (sa - 1) - (sb - 1);
  int hi = (tots / 2) - 1;
  int lc = lo - scc, hc = hi - scc;
  int ld = lo - sd, hd = hi - sd;
  lc = max(lc, 0);
  ld = max(ld, 0);
  hc = min(hc, tots - ld - sa - sb - scc - sd);
  hd = min(hd, tots - lc - sa - sb - scc - sd);
  if (hc < 0) return 0;
  return knapsack(lc, hc);
}
int main() {
  while (scanf("%d", &n) == 1) {
    scanf("%d%d", &a, &b);
    scanf("%d%d", &c, &d);
    a--;
    b--;
    c--;
    d--;
    an = 0;
    memset((adj), (-1), sizeof(adj));
    for (int(i) = (0); (i) < (n - 1); ++(i)) {
      int u;
      scanf("%d", &u);
      add(i + 1, u - 1);
    }
    s = 0;
    tots = 0;
    for (int it = adj[0]; ~it; it = ant[it]) {
      int u = to[it];
      fid = -1;
      int ss = dfs(u, 0);
      tots += ss;
      if (fid == -1) {
        sz[s++] = ss;
      } else if (fid == a)
        sa = ss;
      else if (fid == b)
        sb = ss;
      else if (fid == c)
        scc = ss;
      else
        sd = ss;
    }
    puts(proc() ? "YES" : "NO");
  }
  return 0;
}
