#include <bits/stdc++.h>
using namespace std;
long long n, m, a[101], b[101];
long long get(long long now, long long len) {
  if (now <= len * 2) return 0;
  long long sum = 0;
  a[0] = 1;
  a[1] = 0;
  b[0] = now;
  b[1] = now - 1;
  while (b[1] >= len * 2) {
    if (b[1] == len * 2) return a[0] + sum;
    sum += a[1] + a[0];
    if (b[0] % 2 == 1) {
      b[1] = b[0] / 2 - 1;
      b[0] = b[0] / 2;
      a[0] = a[0] * 2 + a[1];
    } else {
      b[1] = b[0] / 2 - 1;
      b[0] = b[0] / 2;
      a[1] = a[1] * 2 + a[0];
    }
  }
  return sum;
}
long long solve(long long l, long long r, long long p, long long sz) {
  long long mid = (l + r) / 2, le = get(mid - l, p), re = get(r - mid, p + 1);
  if (sz == 1) return mid;
  if (sz > le + re + 1) return solve(mid + 1, r, p, sz - 1 - le);
  return solve(l, mid - 1, p, sz - 1 - re);
}
int main() {
  long long l, r, mid, mn;
  scanf("%lld%lld", &n, &m);
  if (m <= 2) {
    if (m == 1) puts("1");
    if (m == 2) printf("%lld", n);
    return 0;
  }
  n -= 2;
  m -= 2;
  l = 0;
  r = n / 2 + 1;
  mn = 0;
  while (l <= r) {
    mid = (l + r) / 2;
    if (get(n, mid) < m)
      r = mid - 1;
    else
      l = mid + 1, mn = mid;
  }
  printf("%lld", solve(1, n, mn, m) + 1);
}
