#include #include #include using namespace std; int main(){ int n, k; cin >> n >> k; string s; cin >> s; vector> vp; vector flag(n, 0); int pos = 0; while(!flag[pos]){ flag[pos] = true; int stock = 1; int j = 0; while(stock != 0 && j <= n){ stock--; stock += s[(pos+j)%n]-'0'; j++; } if(j > n){ vp.push_back({pos, k}); // 無限 break; }else{ vp.push_back({pos, j}); pos = (pos + j)%n; } } vector> loop, first; int ind = vp.size()-1; int loopN = 0; do{ loopN += vp[ind].second; loop.push_back(vp[ind]); }while(vp[ind--].first != pos); while(ind >= 0){ first.push_back(vp[ind--]); } reverse(loop.begin(), loop.end()); reverse(first.begin(), first.end()); int ret = 0; for(int i = 0; i < first.size(); i++){ k -= first[i].second; ret++; if(k <= 0) break; } if(k <= 0){ cout << ret << endl; return 0; } ret += k/loopN*(loop.size()); k %= loopN; for(int i = 0; k > 0 && i < loop.size(); i++){ ret++; k -= loop[i].second; } cout << ret << endl; return 0; }