#include <bits/stdc++.h>
using namespace std;
int ai[1010000];
int cnt[30];
int poww[30];
int main() {
  for (int i = 0; i < (30); i++) poww[i] = (1 << i);
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 0; i < (n); i++) scanf("%d", &ai[i]);
  for (int i = 0; i < (m); i++) {
    int b;
    scanf("%d", &b);
    cnt[b]++;
  }
  int ans = 0;
  for (int q = 0; q < 30; q++) {
    long long cc = 0;
    for (int i = 0; i < (n); i++)
      if (ai[i] & (1 << q)) cc += (1 << q);
    for (int i = (0); i <= (q); i++) {
      long long u = cnt[i] << i;
      if (cc >= u) {
        cc -= u;
        ans += cnt[i];
        cnt[i] = 0;
      } else {
        ans += (cc >> i);
        cnt[i] -= (cc >> i);
        cc = 0;
        break;
      }
    }
  }
  printf("%d\n", ans);
}
