#include #include using namespace std; typedef pair PDD; const int N = 100010; const double EPS = 1e-9; int n, l, x[N], cnt; PDD irons[N]; int main() { // freopen("skimp.in", "r", stdin); // freopen("skimp.out", "w", stdout); scanf("%d%d", &n, &l); irons[1] = { 1, l }; for (int i = 2; i <= n; ++i) { scanf("%d", &x[i]); irons[i] = { x[i], irons[1].second + x[i] }; } for (int i = 2; i <= n; ++i) { if (irons[i].first <= irons[i - 1].second) break; if (i == n) { puts("-1"); return 0; } } double sum = (irons[n].first + irons[n].second) / 2; cnt = n - 1; for (int i = n - 1; i >= 1; --i) { double avg = 1.0 * sum / (n - i); if (avg - irons[i + 1].first > -EPS && irons[i + 1].second - avg > -EPS && avg - irons[i].first > -EPS && irons[i].second - avg > -EPS) { --cnt; } sum += (irons[i].first + irons[i].second) / 2; } printf("%d\n", cnt); return 0; }