#P13646. [NOISG 2016] LunchBox

[NOISG 2016] LunchBox

Description

你是一家餐馆的经理。你准备了 NN 个饭盒,希望分发给一些学校。假设有 mm 所学校且第 ii 所学校需要 kik_i 个午餐盒。你的目标是将午餐盒分发到尽可能多的学校。同时,你有一个规则。对于第 ii 所学校,你要么不提供餐盒,要么必须提供 kik_i 个午餐盒。你能写一个程序来找到可以接收午餐盒的学校的最大数量吗?

Input Format

程序必须从标准输入中读入。第一行两个正整数 NNmm,然后有 mm 行,除去第一行的第 ii 行有一个整数表示 kik_i

Output Format

您的程序必须向标准输出输出一行包含仅一个整数,表示能满足要求的学校的最大数量。

10 4
3
9
4
2
3

Hint

样例解释

在这个样例中,答案是 33,因为 3+4+2103 + 4 + 2 \leq 103+9+4+2>103 + 9 + 4 + 2 > 10

子任务

每个测试数据的时限为 0.50.5 秒。您的程序将在满足以下限制的输入数据上进行测试:

子任务 分值 限制
1 20 每组输入数据满足 m=1m = 1, 0<N600000 < N \leq 600000<ki300000 < k_i \leq 30000
2 30 每组输入数据满足 0<m10000 < m \leq 1000, 0<N600000 < N \leq 600000<ki10000 < k_i \leq 1000
3 50 每组输入数据满足 0<N,m600000 < N,m \leq 600000<ki300000 < k_i \leq 30000