#include <bits/stdc++.h>
using namespace std;

bool check(int c, vector<int>&a,vector<int>&b){
  int n = a.size();
  int m =  b.size();
  
  if(m*c < n)return false;
  
  for(int i = 0 ;i < n ;i++){
  	int d = i/c;
  	int j = d;
  	if(a[i]>b[j]){
  		return false;
  	}
  }
  return true;
}

int func(vector<int>&a, vector<int>&b){
  int n = a.size();
  int m =  b.size();
  
  int l = 1;
  int h = n;
  int r = 0;
  
  sort(a.rbegin(),a.rend());
  sort(b.rbegin(),b.rend());
  
  if(a[0]<=b[0]){
  while(l<=h){
  	int m = l + (h-l)/2;
  	if(check(m,a,b)){
  		r = m;
  		h = m-1;
  	}else{
  		l = m+1;
  	}
  }
  return 2*r-1;
  	
  }
  return -1;
  
}
int main() {
 vector<int>a = {1,2,3,4,5};
 vector<int>b = {7,4,6,1,2 };
 
 cout<<func(a,b);
}