#include <bits/stdc++.h>
using namespace std;
int lastr, lastc;
int n, m, a, b;
int row1[10], rcnt, ans;
int main() {
  int i, j, k;
  while (scanf("%d%d%d%d", &n, &m, &a, &b) != EOF) {
    if (m == 1) {
      printf("1\n");
      continue;
    }
    lastr = (n + m - 1) / m;
    lastc = n % m;
    lastc = lastc == 0 ? m : lastc;
    ans = 0, rcnt = 0;
    row1[++rcnt] = (a + m - 1) / m;
    if ((b + m - 1) / m != (a + m - 1) / m) {
      if ((b + m - 1) / m == (a + m - 1) / m + 1)
        row1[++rcnt] = (b + m - 1) / m;
      else
        row1[++rcnt] = row1[1] + 1, row1[++rcnt] = (b + m - 1) / m;
    }
    int ta = a % m, tb = b % m;
    if (ta == 0) ta = m;
    if (tb == 0) tb = m;
    if (rcnt == 1)
      printf("1\n");
    else if (rcnt == 2) {
      if (ta == 1 &&
          (row1[2] != lastr && tb == m || row1[2] == lastr && tb == lastc))
        printf("1\n");
      else
        printf("2\n");
    } else {
      if (ta == 1 &&
          (row1[3] != lastr && tb == m || row1[3] == lastr && tb == lastc))
        printf("1\n");
      else if (ta == 1 || tb == m || ta - 1 == tb ||
               (lastr == row1[3] && lastc == tb))
        printf("2\n");
      else
        printf("3\n");
    }
  }
}
