#include <bits/stdc++.h>
using namespace std;
int b[1000555];
int main() {
  int n, m, i, j, k, p, q, br[55], stp[55];
  scanf("%d %d", &n, &m);
  for (i = 0; i < 32; i++) {
    stp[i] = 1 << i;
    br[i] = 0;
  }
  for (i = 0; i < n; i++) {
    scanf("%d", &p);
    for (j = 0; j < 32; j++) {
      if (p & stp[j]) {
        br[j]++;
      }
    }
  }
  for (i = 0; i < m; i++) {
    scanf("%d", &p);
    b[i] = p;
  }
  sort(b, b + m);
  for (i = 0; i < m; i++) {
    for (j = b[i]; j < 32; j++) {
      if (br[j]) {
        br[j]--;
        q = (1 << j) - (1 << b[i]);
        if (q > 0) {
          for (k = b[i]; k < 32; k++)
            if (q & stp[k]) {
              br[k]++;
            }
        }
        break;
      }
    }
    if (j == 32) {
      printf("%d\n", i);
      return 0;
    }
  }
  printf("%d\n", m);
  return 0;
}
