#include #include using namespace std; typedef long long LL; typedef pair PII; const int N = 100010; int n, l, x[N], cnt; LL num, denom, ans; PII irons[N]; int main() { // freopen("skimp.in", "r", stdin); // freopen("skimp.out", "w", stdout); scanf("%d%d", &n, &l); irons[1] = { 0, l - 1 }; for (int i = 2; i <= n; ++i) { scanf("%d", &x[i]); irons[i] = { irons[1].first + x[i], irons[1].second + x[i] }; } for (int i = 2; i <= n; ++i) { if (irons[i].first < irons[i - 1].second) { puts("-1"); break; } } ans = n - 1; num = irons[n].first + irons[n].second, denom = 2; for (int i = n - 1; i >= 1; --i) { if ((2LL * max(irons[i].first, irons[i + 1].first) - 1) * denom < 2 * num && (2LL * min(irons[i].second, irons[i + 1].second) + 1) * denom > 2 * num) { --ans; } denom += 2; num += irons[i].first + irons[i].second; } printf("%lld\n", ans); return 0; }