#include<iostream>
using namespace std;
const int N=110;
int a[N];
int main()
{
int T;
cin >>T;
while(T--)
{
int n,d;
cin >>n >>d;
//输入
for(int i=0;i<n;i++)
cin >>a[i];
从下一个开始往 a[0]里放石子
int j=1;
while(j<n)
{
if(d>=a[j]*j) //如果说当前位数移动的步数比 剩余的步数d 小
{
a[0]+=a[j];
d-=a[j]*j; //剩余的步数
}
else //当前移动的位数 比 剩余的步数d 大
{
a[0]+=d/j;
break;
}
j++;
}
cout <<a[0]<<endl;
}
return 0;
}