#include <stdio.h>
#include <stdlib.h>

// Structure to store item data
typedef struct {
    int item;
    int smaller;
    int larger;
} Item;

// Function to check if input is valid
int isValidInput(int n, Item items[], int L, int R) {
    // Check N
    if (n < 1 || n > 10000) return 0;

    // Check each item
    for (int i = 0; i < n; i++) {
        if (items[i].item < 1 || items[i].item > 100000) return 0;
        if (items[i].smaller != -1 && (items[i].smaller < 1 || items[i].smaller > 100000)) return 0;
        if (items[i].larger != -1 && (items[i].larger < 1 || items[i].larger > 100000)) return 0;
    }

    // Check L and R
    if (L < 1 || R > 100000 || L > R) return 0;

    return 1;
}

// Main function
int main() {
    int N;
    scanf("%d", &N);

    if (N < 1 || N > 10000) {
        printf("Invalid Input\n");
        return 0;
    }

    Item items = (Item)malloc(N * sizeof(Item));
    if (!items) {
        printf("Invalid Input\n");
        return 0;
    }

    for (int i = 0; i < N; i++) {
        if (scanf("%d %d %d", &items[i].item, &items[i].smaller, &items[i].larger) != 3) {
            printf("Invalid Input\n");
            free(items);
            return 0;
        }
    }

    int L, R;
    if (scanf("%d %d", &L, &R) != 2) {
        printf("Invalid Input\n");
        free(items);
        return 0;
    }

    // Validate input
    if (!isValidInput(N, items, L, R)) {
        printf("Invalid Input\n");
        free(items);
        return 0;
    }

    // Count items whose number is in [L, R]
    int count = 0;
    for (int i = 0; i < N; i++) {
        if (items[i].item >= L && items[i].item <= R) {
            count++;
        }
    }

    printf("%d\n", count);

    free(items);
    return 0;
}