#include <bits/stdc++.h>
using namespace std;
const long long maxn = 1e6 + 10, inf = 1e18, mod = 1e9 + 7;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long c, n, m, a[maxn], mem[110], v;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    cin >> v;
    c = 0;
    while (v) {
      if (v & 1) {
        mem[c]++;
      }
      v >>= 1;
      c++;
    }
  }
  for (int i = 1; i <= m; i++) {
    cin >> a[i];
  }
  sort(a + 1, a + 1 + m);
  long long s = 1, ss = 0, jj = 0;
  while (s <= m && ss <= 100) {
    if (mem[ss] > 0 && a[s] <= ss) {
      jj++;
      s++;
      mem[ss]--;
      while (a[s - 1] < ss) {
        ss--;
        mem[ss]++;
      }
    } else {
      ss++;
    }
  }
  cout << jj;
  return 0;
}
