import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();

        // 为三种颜色分别创建差分数组
        int[] yellow = new int[n + 2];  // 1
        int[] blue = new int[n + 2];    // 2
        int[] red = new int[n + 2];     // 3

        for (int i = 0; i < m; i++) {
            int l = scanner.nextInt();
            int r = scanner.nextInt();
            int k = scanner.nextInt();

            // 根据颜色更新差分数组
            if (k == 1) {
                yellow[l]++;
                yellow[r + 1]--;
            } else if (k == 2) {
                blue[l]++;
                blue[r + 1]--;
            } else if (k == 3) {
                red[l]++;
                red[r + 1]--;
            }
        }

        // 计算前缀和,得到每个油漆罐的颜色情况
        int countGreen = 0;
        int y = 0, b = 0, r = 0;

        for (int i = 1; i <= n; i++) {
            y += yellow[i];
            b += blue[i];
            r += red[i];

            // 判断是否为绿色:有黄色和蓝色,没有红色
            if (y > 0 && b > 0 && r == 0) {
                countGreen++;
            }
        }

        System.out.println(countGreen);
        scanner.close();
    }
}