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