// coding in the memory of Legend :) 


//~ mail ID : neernpatel@gmail.com
//~ Author : DrexDelta
//~ codechef : drexdelta , hackerRank : drexdelta , codeforces : drexdelta1
//~ Contact Info : neernpatel@gmail.com

 
#include<iostream>
#include <cctype>
#include <cerrno>
#include <cfloat>
#include <ciso646>
#include <climits>
#include <clocale>
#include <cmath>
#include <csetjmp>
#include <csignal>
#include <cstdarg>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <ccomplex>
#include <cfenv>
#include <cinttypes>
#include <cstdbool>
#include <cstdint>
#include <ctgmath>
#include <cwchar>
#include <cwctype>
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>
#include <array>
#include <unordered_map>
#include <unordered_set>


using namespace std;

#define F first
#define S second
#define MP make_pair
#define PB push_back
#define UB upper_bound
#define LB lower_bound
#define ER erase
#define EN end()
#define B begin()
#define I insert
#define OPTIMIZE ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define int ll
#define endl "\n"
#define CO cout <<
#define CI cin >>
#define NL cout << endl;
#define DBG {int debug ; cin >> debug;}
#define AND &&
#define OR ||
#define XOR ^
#define OFLUSH fflush(stdout);
#define IFLUSH fflush(stdin);
#define LEN(x) ((int)x.length())

#define rep(i,x) for(int i = 0 ; i < x ; i++)
#define rep1(i,x) for(int i = 1 ; i <= x ; i++)

#define repl(var,start_val,limit_val) for(int var = start_val ; var <= limit_val ; var++)
#define perl(var,start_val,limit_val) for(int var = start_val ; var >= limit_val ; var--)

#define y1 qwert
#define y2 trewq
#define x1 asdfg
#define x2 gfdsa

typedef long long ll;
typedef pair<int,int> ii;
typedef vector<int> vi;
typedef set<int> si;
typedef multiset<int> msi;
typedef long double ld;

const ll MOD = 1e9 + 7;
/////////////////////////
// declaration section //
/////////////////////////

string s;
int n , k;
void getInput(){

	cin >> s;
	cin >> k;
	n =0;
	rep(i,LEN(s)){
		if(s[i]=='1'){
			n++;
		}
		n<<=1;
	}
	cout << n/2 << endl;

}

int cnt = 0;
bool check(int ones){


	int counts , reps = 0;

	while(ones != 1){

		counts = 0;
		while(ones != 0){
			if(ones&1)counts++;
			ones>>=1;
		}
		ones = counts;
		reps++;

	}

	cnt = reps;

	return(reps >= k);

}

void solve(){
	int ans = 0;

	cout << ans << endl;
    repl(i,1,n/2){
    	if(check(i))ans++ , cout <<i <<  " is valid " << endl;
    }

    cout << ans << endl;

}

signed main(){

    OPTIMIZE
    cout << " demo " << endl;
    repl(i,1,10){
    	check(i);
    	cout << " no of steps to convert " << i << " into " << 1 << " is " << cnt << endl;
    }

    //freopen("in.txt" , "r" , stdin) ;
    //freopen("out.txt" , "w" , stdout) ;

    int t=1;
    //cin >> t;
    while(t--)
        getInput() , solve();

	return 0;

}
