#include<iostream>
#include<map>
#include<vector>
#define int long long
using namespace std;
int n;
long long k,x,sum,cnt,a[200005],oth,cnt_oth,c[200005];
map<long long,long long>mp;
vector<long long>xunhuan;
signed main()
{
scanf("%lld%lld",&n,&k);
for(int i=0;i<n;i++)
{
scanf("%lld",&a[i]);
}
xunhuan.push_back(0);
while(1)
{
if(mp.find(a[x%n])!=mp.end())
{
break;
}
mp[a[x%n]]=cnt;
x+=a[x%n];
cnt++;
c[cnt]=x;
xunhuan.push_back(x%n);
}
if(cnt>=k)
{
printf("%lld",c[k]);
}
else
{
long long xunhuan_len=0;;
for(int i=xunhuan.size()-1;i>=0;i--)
{
xunhuan_len++;
if(x%n==xunhuan[i])
{
break;
}
}
long long sum_xunhuan=c[cnt]-c[cnt-xunhuan_len];
k-=cnt-xunhuan_len;
printf("%lld",(k/cnt)*sum_xunhuan+c[cnt-xunhuan_len+1+k%cnt]-c[cnt-xunhuan_len]+c[cnt-xunhuan_len]);
}
return 0;
}