端水大师
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

n 个同学要来小 Q 家做客,他打算倒 n 杯水来招待他们。小 Q 先给每个杯子里倒上一些水,可是因为技术不佳,每杯水的水量可能有所差别,第 i 个杯子里有 a_i 毫升水,不过小 Q 希望每个人杯子里的水量差别不要太大。现在他每秒可以把一个杯子里的一毫升水倒到另一个杯子里,他想知道至少需要多少时间才能保证所有人杯子里的水量的二阶原点矩不超过 x

说明:a_1,a_2,\dots,a_n的二阶原点矩为 \dfrac{\sum\limits_{i=1}^na_i^2}{n},也即平方的均值。

输入描述:

输入共两行。
第一行包含两个整数 n (1\leq n\leq 10^5)x (0\leq x\leq 10^{10})n 代表同学的数量,x 代表最大的二阶原点矩,两个数之间用空格隔开。
第二行 n 个整数,分别是 a_1,a_2,\dots,a_n (0\leq a_i\leq 10^5)a_i表示第 i 个杯子初始的水量。

输出描述:

输出一行一个整数,表示至少需要的时间。如果永远无法保证所有人杯子里的水量的二阶原点矩不超过 x,输出-1
示例1

输入

复制
6 8
1 1 4 5 1 4

输出

复制
3
示例2

输入

复制
6 7
1 1 4 5 1 4

输出

复制
-1

备注:

数据范围:1\leq n\leq 10^50\leq x\leq 10^{10}0\leq a_i\leq 10^5