#include <iostream>
using namespace std;
const int N = 110;
int T;
int n,d;
int a[N];
int main()
{
cin >> T;
while(T--)
{
cin >> n >> d;
for(int i=0;i<n;i++) cin >> a[i];
for(int i=1;i<n;i++)
{
//判断当前移动次数能不能使石子能够移到a[0]处 比如1 0 0 3 如果移动2次的话 只能移到a[1]处
//移不到a[0] 此时a[0]是不能加1的
while(a[i]>0&&d-i>=0) //第i个位置移到a[0]处需要移动i次
{
a[i]--;
d=d-i;
a[0]++;
}
}
cout << a[0] << endl;
}
return 0;
}