#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
long long go(long long n, long long k) {
  long long mid = (n + 1) / 2;
  if (k == 1) return (n + 1) / 2;
  if (n == 2 && k == 2) return 2;
  k--;
  long long mn = (n - 1) / 2;
  long long whatr = n - 1 - (n - 1) / 2;
  long long mx = mn + 1;
  long long cmnl = 1;
  long long cmxl = 0;
  long long cmnr = 0;
  long long cmxr = 0;
  if (whatr == mn)
    cmnr++;
  else
    cmxr++;
  long long didl = 0;
  long long didr = 0;
  while (1) {
    if (mn > 2) {
      if (mn % 2 == 0) {
        if (k <= cmxl)
          return go((n - 1) / 2, didl + k);
        else if (k <= cmxl + cmxr)
          return (n + 1) / 2 + go(whatr, didr + k - cmxl);
        else if (k <= cmxl + cmxr + cmnl)
          return go((n - 1) / 2, didl + k - cmxr);
        else if (k <= cmxl + cmxr + cmnl + cmnr)
          return (n + 1) / 2 + go(whatr, didl + k - cmnl - cmxl);
        else {
          k -= cmxl + cmxr + cmnl + cmnr;
          didl += cmnl + cmxl;
          didr += cmnr + cmxr;
          cmxl = 2 * cmxl + cmnl;
          cmxr = 2 * cmxr + cmnr;
          mn = mn / 2 - 1;
          mx = mn + 1;
        }
      } else {
        if (k <= cmnl + cmxl)
          return go((n - 1) / 2, didl + k);
        else if (k <= cmxl + cmxr + cmnl + cmnr)
          return (n + 1) / 2 + go(whatr, didl + k - cmnl - cmxl);
        else {
          k -= cmxl + cmxr + cmnl + cmnr;
          didl += cmnl + cmxl;
          didr += cmnr + cmxr;
          cmnl = 2 * cmnl + cmxl;
          cmnr = 2 * cmnr + cmxr;
          mn = mn / 2;
          mx = mn + 1;
        }
      }
    } else if (mn == 2) {
      if (k <= cmxl)
        return go((n - 1) / 2, didl + k);
      else if (k <= cmxl + cmxr)
        return (n + 1) / 2 + go(whatr, didr + k - cmxl);
      else {
        k -= cmxl + cmxr;
        didl += cmxl;
        didr += cmxr;
        swap(cmxl, cmnl);
        cmnl *= 2;
        swap(cmxr, cmnr);
        cmnr *= 2;
        mn = 1;
        mx = 2;
      }
    } else if (mn == 1) {
      if (k <= cmnl + 2 * cmxl)
        return go((n - 1) / 2, didl + k);
      else
        return (n + 1) / 2 + go(whatr, didr + k - cmnl - 2 * cmxl);
    }
  }
  return -1;
}
int main() {
  long long n, k;
  cin >> n >> k;
  if (k == 1)
    cout << 1;
  else if (k == 2)
    cout << n;
  else
    cout << 1 + go(n - 2, k - 2);
}
