Almost Permutation
题号:NC245485
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

现有一个长度为 n 的未知数组
A , 每个元素都是 内的整数。

有如下两种共 q 个限制 :

1. 中所有数都大于等于 v

2. 中所有数都小于等于 v

cnt(i)iA 中的出现次数。

求出在所有满足条件的数组中,下列式子的最小值 :



若不存在满足条件的数组,输出 -1

输入描述:

第一行两个整数 nq (  ,  )

接下来q行每行四个整数表示一个限制: , , 表示第 i 个限制 ( , , ), 表示限制类型

输出描述:

一个整数,表示答案。
若不存在满足条件的数组,输出 -1
示例1

输入

复制
3 0

输出

复制
3
示例2

输入

复制
3 1
1 1 3 2

输出

复制
5
示例3

输入

复制
3 2
1 1 3 2
2 1 3 2

输出

复制
9
示例4

输入

复制
3 2
1 1 3 2
2 1 3 1

输出

复制
-1