#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);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGNoZWNrKGludCBjLCB2ZWN0b3I8aW50PiZhLHZlY3RvcjxpbnQ+JmIpewogIGludCBuID0gYS5zaXplKCk7CiAgaW50IG0gPSAgYi5zaXplKCk7CiAgCiAgaWYobSpjIDwgbilyZXR1cm4gZmFsc2U7CiAgCiAgZm9yKGludCBpID0gMCA7aSA8IG4gO2krKyl7CiAgCWludCBkID0gaS9jOwogIAlpbnQgaiA9IGQ7CiAgCWlmKGFbaV0+YltqXSl7CiAgCQlyZXR1cm4gZmFsc2U7CiAgCX0KICB9CiAgcmV0dXJuIHRydWU7Cn0KCmludCBmdW5jKHZlY3RvcjxpbnQ+JmEsIHZlY3RvcjxpbnQ+JmIpewogIGludCBuID0gYS5zaXplKCk7CiAgaW50IG0gPSAgYi5zaXplKCk7CiAgCiAgaW50IGwgPSAxOwogIGludCBoID0gbjsKICBpbnQgciA9IDA7CiAgCiAgc29ydChhLnJiZWdpbigpLGEucmVuZCgpKTsKICBzb3J0KGIucmJlZ2luKCksYi5yZW5kKCkpOwogIAogIGlmKGFbMF08PWJbMF0pewogIHdoaWxlKGw8PWgpewogIAlpbnQgbSA9IGwgKyAoaC1sKS8yOwogIAlpZihjaGVjayhtLGEsYikpewogIAkJciA9IG07CiAgCQloID0gbS0xOwogIAl9ZWxzZXsKICAJCWwgPSBtKzE7CiAgCX0KICB9CiAgcmV0dXJuIDIqci0xOwogIAkKICB9CiAgcmV0dXJuIC0xOwogIAp9CmludCBtYWluKCkgewogdmVjdG9yPGludD5hID0gezEsMiwzLDQsNX07CiB2ZWN0b3I8aW50PmIgPSB7Nyw0LDYsMSwyIH07CiAKIGNvdXQ8PGZ1bmMoYSxiKTsKfQ==