#include <bits/stdc++.h>
#pragma GCC optimize(3)
using namespace std;
int a[40], b[1000005];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n, m, x;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    cin >> x;
    int t = 1;
    for (int j = 0; j <= 29; j++) {
      if (x & t) a[j]++;
      t *= 2;
    }
  }
  for (int i = 1; i <= m; i++) {
    cin >> b[i];
  }
  sort(b + 1, b + m + 1);
  for (int i = 1; i <= m; i++) {
    bool f = 0;
    for (int j = b[i]; j <= 29; j++) {
      if (a[j]) {
        a[j]--;
        for (int k = b[i]; k < j; k++) a[k]++;
        f = 1;
        break;
      }
    }
    if (!f) {
      cout << i - 1;
      return 0;
    }
  }
  cout << m;
  return 0;
}
