#include <bits/stdc++.h>
using namespace std;
namespace sky_chen {
char buf[1 << 23], *p1 = buf, *p2 = buf, obuf[1 << 23], *O = obuf;
inline long long read() {
  long long ans = 0, f = 1;
  char a =
      p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2)
          ? EOF
          : *p1++;
  while (a > '9' || a < '0') {
    if (a == '-') f = -1;
    a = p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2)
            ? EOF
            : *p1++;
  }
  while (a >= '0' && a <= '9')
    ans = ans * 10 + (a ^ 48),
    a = p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2)
            ? EOF
            : *p1++;
  return ans * f;
}
inline char red() {
  char a =
      p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2)
          ? EOF
          : *p1++;
  while (a != 'A' && a != 'P' && a != 'C' && a != 'Q')
    a = p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1000000, stdin), p1 == p2)
            ? EOF
            : *p1++;
  return a;
}
inline void print(long long x) {
  if (x < 0) return (void)(*O++ = '-', print(-x));
  if (x > 9) print(x / 10);
  *O++ = x % 10 + '0';
}
inline void cadd(long long &x, long long y) { x = (x + y) % 10007; }
inline void cmin(long long &x, long long y) { x = min(x, y); }
inline void cmax(long long &x, long long y) { x = max(x, y); }
long long qpow(long long n, long long base = 10007 - 2) {
  long long ans = 1;
  while (base) {
    if (base & 1) ans = ans * n % 10007;
    n = n * n % 10007;
    base >>= 1;
  }
  return ans;
}
using namespace std;
const int maxn = 1e5 + 5;
long long n, rt, a[maxn], ls[maxn], rs[maxn], vis[maxn], ans;
map<long long, bool> mp;
void f(long long nw) {
  if (nw == -1) return;
  vis[nw] = 1;
}
void dfs(long long nw, long long l, long long r) {
  if (nw == -1) return;
  if (a[nw] > l && a[nw] < r) mp[a[nw]] = 1;
  dfs(ls[nw], l, min(r, a[nw])), dfs(rs[nw], max(l, a[nw]), r);
}
void get_ans() {
  for (long long i = 1; i <= n; i++)
    if (!mp[a[i]]) ans++;
}
int yyds() {
  n = read();
  for (long long i = 1; i <= n; i++)
    a[i] = read(), ls[i] = read(), rs[i] = read(), f(ls[i]), f(rs[i]);
  for (long long i = 1; i <= n; i++)
    if (!vis[i]) rt = i;
  dfs(rt, -1, 1e9 + 1), get_ans(), print(ans);
  fwrite(obuf, 1, O - obuf, stdout);
  return 0;
}
}  // namespace sky_chen
int main() { return sky_chen::yyds(); }
