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