#include <bits/stdc++.h>
using namespace std;
vector<int> s[11111];
int flag = 0;
int fun(int x) {
  if (s[x].size() == 0) return 1;
  int ji = 0, i;
  for (i = 0; i < s[x].size(); i++) {
    ji += fun(s[x][i]);
  }
  if (flag) return 0;
  if (ji < 3) {
    flag = 1;
  }
  if (flag) return 0;
  return 0;
}
int main() {
  int n, m, i, j;
  cin >> n;
  for (i = 2; i <= n; i++) {
    cin >> m;
    s[m].push_back(i);
  }
  fun(1);
  if (!flag)
    printf("Yes\n");
  else
    printf("No\n");
}
