#include <bits/stdc++.h>
int cal(int k) {
  int s, x;
  s = 1;
  x = 2;
  while (k > 0) {
    if (k % 2 != 0) s = ((long long)s * x) % 1000000009;
    k >>= 1;
    x = ((long long)x * x) % 1000000009;
  }
  return s;
}
int main() {
  int n, k, x, y;
  scanf("%d %d", &n, &k);
  if (k < 31 && n >= (1 << k))
    printf("0\n");
  else {
    x = 1;
    y = cal(k);
    while (n--) {
      y--;
      if (y < 0) y = 1000000008;
      x = ((long long)x * y) % 1000000009;
    }
    printf("%d\n", x);
  }
  return 0;
}
