#include using namespace std; #define REP(i,n) for(int i=0;i<(int)(n);++i) #define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i) #define ALL(c) (c).begin(), (c).end() #define valid(y,x,h,w) (0<=y&&y pii; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (bostream&operator<<(ostream &o,const vector&t){o<<'[';FOR(i,t){if(i!=t.begin())o<<',';o<<*i;}return o<<']';} templateostream&operator<<(ostream &o,const pair&t){return o<<'('<void output(ostream&,const Tp&){} templatevoid output(ostream &o,const Tp&t){if(N)o<<',';o<(t);output(o,t);} templateostream&operator<<(ostream&o,const tuple&t){o<<'(';output<0,tuple,Ts...>(o,t);return o<<')';} templatevoid output(T t,char z=10){if(t<0)t=-t,putchar(45);int c[20]; int k=0;while(t)c[k++]=t%10,t/=10;for(k||(c[k++]=0);k;)putchar(c[--k]^48);putchar(z);} templatevoid outputs(T t){output(t);} templatevoid outputs(S a,T...t){output(a,32);outputs(t...);} templatevoid output(T *a,int n){REP(i,n)output(a[i],i!=n-1?',':10);} templatevoid output(T *a,int n,int m){REP(i,n)output(a[i],m);} templatebool input(T &t){int n=1,c;for(t=0;!isdigit(c=getchar())&&~c&&c-45;); if(!~c)return 0;for(c-45&&(n=0,t=c^48);isdigit(c=getchar());)t=10*t+c-48;t=n?-t:t;return 1;} templatebool input(S&a,T&...t){input(a);return input(t...);} templatebool inputs(T *a, int n) { REP(i,n) if(!input(a[i])) return 0; return 1;} int p[50]; int d[50]; int num[50]; int nd[50]; int n,k; string s; bool inf[100]; int solve() { REP(i,n) inf[i] = 0; REP(i,n) { int t = 1; int a = i; int cnt = 0; while(t) { t--; t += s[a] - '0'; a = (a+1)%n; cnt++; if (a == i && t) { inf[i] = 1; break; } else if (a == i) break; } num[i] = cnt; p[i] = a; } // output(p,n); // output(num,n); // output(inf,n); REP(i,n)d[i]=-1; d[0] = 0; int a = 0; int cnt = 0; int T = 0; int ini = 0; int nc = 0; int TT = 0; vector v; while(1) { nc += num[a]; v.push_back(num[a]); cnt++; if (inf[a]) return cnt; a = p[a]; // cout << a << endl; if (nc >= k) return cnt; if (d[a] != -1) { ini = a; T = cnt - d[a]; TT = nc - nd[a]; break; } nd[a] = nc; d[a] = cnt; } // cout << ini << endl; // cout << TT << " " << T << endl; // cout << v << endl; ll ans = d[a] + (k-nd[ini])/TT*T; k -= nd[ini]; k -= k / TT * TT; // cout << k << endl; for (int i=d[ini]; ; ++i) { if (k<=0) return ans; k -= v[i]; ans++; } return -1; } int main() { while(input(n,k)) { cin >> s; cout << solve() << endl; } }