func_code_string: #include <bits/stdc++.h>   #pragma GCC optimize( Ofast )   #pragma GCC target( avx,avx2,fma )   using namespace std;   const long long MOD = 1000000007;   const long long mod = 1000000007;   const int Nmax = 2000006;   long long gcd(long long a, long long b) {     if (a == 0) {       return b;     }     return gcd(b % a, a);   }   int lcm(int a, int b) { return (a * b) / gcd(a, b); }   bool isPrime(long long n) {     for (int i = 2; i <= sqrt(n); i++)       if (n % i == 0) return 0;     return 1;   }   void binaryRepresentation(int x) {     for (int i = 31; i >= 0; i--) {       if (x & (1 << i))         cout <<  1 ;       else         cout <<  0 ;     }   }   long long combination(long long n, long long r) {     if (r == n || r == 0) {       return 1LL;     }     return combination(n - 1, r - 1) + combination(n - 1, r);   }   bool isPowerOfTwo(long long n) {     if (n == 0) return false;     return (ceil(log2(n)) == floor(log2(n)));   }   long long power(long long a, long long b) {     long long ans = 1;     while (b) {       if (b & 1) ans = (ans * a) % MOD;       b /= 2;       a = (a * a) % MOD;     }     return ans % MOD;   }   long long inverse(long long i) {     if (i == 1) return 1;     return (MOD - ((MOD / i) * inverse(MOD % i)) % MOD + MOD) % MOD;   }   bool cmp(const pair<long long, long long> &a,            const pair<long long, long long> &b) {     if (a.first == b.first) return a.second < b.second;     return a.first < b.first;   }   string toString(long long a) {     ostringstream temp;     temp << a;     return temp.str();   }   int main() {     long long n, k;     cin >> n >> k;     long long ct = 1;     if (k == 1) {       cout << n;       return 0;     }     while (ct <= n) {       ct = ct * 2;     }     cout << ct - 1;     return 0;   }   