#include <iostream>
#include <vector>
using namespace std;
#define ll long long
vector<ll> a;
vector<vector<ll>> dp;
// ll lastIndx = 0;
ll solve(ll ind, ll inInd, ll x){
if(ind > 148) return 1;
if(dp[ind][inInd] != -1) return dp[ind][inInd];
ll ans = 0;
ans += solve(ind+1, (inInd/2) + a[ind+1], x);
if(inInd>=x) ans += solve(ind+1, ((inInd-x)/2) + a[ind+1], x);
dp[ind][inInd] = ans;
return dp[ind][inInd];
}
ll count_tastiness(ll x, vector<ll> A){
a.assign(150, 0);
for(ll i = 0; i<A.size(); i++) a[i] = A[i];
for(ll i = 0; i<a.size()-1; i++){
if((a[i]>=x) && ((a[i] - x) % 2) == 0){
ll k = ((a[i]-x)/2);
a[i+1] += k;
a[i] -= 2*k;
}
else if(a[i] >= x){
ll k = ((a[i]-x-1)/2);
a[i+1] += k;
a[i] -= 2*k;
}
// if(a[i] != 0) lastIndx = i;
}
dp.assign(150, vector<ll>(3*x + 15, -1));
return solve(0, a[0], x);
}