Start: 2025-09-28 11:00:00

25复赛模拟赛03OI赛制

End: 2025-09-29 13:30:00
Now  2025-12-02 13:03:59  类型: OI  状态: Ended 

P3. 蛋糕(cake)
Description

小 C 过生日了,他买了 m 块蛋糕,第 i 块蛋糕的大小为 a_i

小 C 喜欢 2 这个数,所以他买的所有蛋糕的大小一定是 2 的整数幂,即 \forall 1\le i\le m,\exists 0\le ka_i=2^k

小 C 可以用一把刀切蛋糕(切的蛋糕大小必须大于 1),他可以将一块大小为 x 的蛋糕一分为二切成两块大小为 \frac{x}{2} 的蛋糕。

小 C 想要选出一些蛋糕送给朋友,但小 C 有强迫症,他想让选出蛋糕的大小之和为 n

由于切蛋糕是需要体力的,小 C 想要知道最少需要切多少次蛋糕使得他能够选出一些蛋糕使得选出蛋糕的大小之和为 n

如果怎样切蛋糕都无法选出一些蛋糕使得选出蛋糕的大小之和为 n,请告诉小 C 不可能(即输出 -1)。


Input

第一行输入两个数字 n,m,分别表示选出蛋糕的大小之和,最初蛋糕的块数。

第二行输入 m 个整数,第 i 个整数表示第 i 块蛋糕的大小 a_i

Output

共一行,输出一个整数,表示切蛋糕的最小次数,若不可能输出 -1

Examples

Input

10 3
1 1 32

Output

2

Input

20 5
1 1 2 8 16

Output

0
Hint

样例 1 解释

  • 选择大小为 32 的蛋糕切一刀,变成两块大小为 16 的蛋糕。

  • 选择大小为 16 的蛋糕切一刀,变成两块大小为 8 的蛋糕。

可以选出大小分别为 1,1,8 的蛋糕,使得大小之和为 10,故最小次数为 2

数据规模与约定

  • 对于 20\% 的数据,保证 n \le 256m\le 41\le a_i\le 512

  • 对于 40\% 的数据,保证 n \le 4096

  • 对于另 20\% 的数据,保证 m=1

  • 对于另 20\% 的数据,保证 m=2

  • 对于 100\% 的数据,保证 1\le n\le 10^{18}1\le m\le 10^51\le a_i\le 10^{13}


Submit

题目参数
Time Limit 1 second
Memory Limit 128 MB
Submit