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