#include <bits/stdc++.h>
using namespace std;
long long n, k;
long long calc(long long n, long long k) {
  map<long long, long long> l, r;
  l.clear();
  r.clear();
  long long cnt[2];
  cnt[0] = cnt[1] = 0;
  if (k == 1) return n / 2;
  k--;
  l[n / 2] = 1;
  r[n / 2 + (n % 2)] = 1;
  while (1) {
    if ((*l.rbegin()).first / 2 >= (*r.rbegin()).first / 2) {
      if ((*l.rbegin()).second >= k) return calc(n / 2, k + cnt[0]);
      k -= (*l.rbegin()).second;
      cnt[0] += (*l.rbegin()).second;
      l[(*l.rbegin()).first / 2] += (*l.rbegin()).second;
      l[(*l.rbegin()).first / 2 + ((*l.rbegin()).first % 2)] +=
          (*l.rbegin()).second;
      l.erase((*l.rbegin()).first);
    } else {
      if ((*r.rbegin()).second >= k)
        return calc(n / 2 + (n % 2), k + cnt[1]) + n / 2;
      k -= (*r.rbegin()).second;
      cnt[1] += (*r.rbegin()).second;
      r[(*r.rbegin()).first / 2] += (*r.rbegin()).second;
      r[(*r.rbegin()).first / 2 + ((*r.rbegin()).first % 2)] +=
          (*r.rbegin()).second;
      r.erase((*r.rbegin()).first);
    }
  }
}
int main() {
  cin >> n >> k;
  if (k == 1) {
    cout << 1;
    return 0;
  }
  if (k == 2) {
    cout << n;
    return 0;
  }
  cout << 1 + calc(n - 1, k - 2);
  return 0;
}
