#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; } for (int i = 2; i <= n; ++i) { if (l[i] < r[i - 1] || l[i - 1] > r[i]) { puts("-1"); break; } } ans = n - 1; num = l[n] + r[n], denom = 2; for (int i = n - 1; i >= 1; --i) { if (max(l[i], l[i + 1]) * denom * 2 - denom < num * 2 && num * 2 < min(r[i], r[i + 1]) * denom * 2 + denom) { --ans; } denom += 2; num += l[i] + r[i]; } printf("%lld\n", ans); return 0; }