/*
第一行为两个整数n,m
第二行n个整数,表示集合a中的元素
第三行m个整数,表示集合b中的元素
对于100%的数据,1<n,m<1000000<a[i],b[i]<100000000,集合a中元素互不相同,集合b中的元素互不相同。
in:
3 5
1 2 5
2 3 4 5 6
out:
2
*/
import java.util.Arrays;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n,m;
int cnt;
n=scan.nextInt();
m=scan.nextInt();
double []a=new double[n];
double []b=new double[m];
for(int i=0;i<n;++i) {
a[i]=scan.nextDouble();
}
for(int i=0;i<m;++i) {
b[i]=scan.nextInt();
}
Arrays.sort(a);
Arrays.sort(b);
double va=avd(a);
double vb=avd(b);
if(vb>va) {
cnt=Maicg(a,b,va,vb);
}
else {
cnt=Maicg(b,a,vb,va);
}
System.out.println(cnt);
}
static double avd(double []a) {
double sum=0;
for(int i=0;i<a.length;++i) {
sum+=a[i];
}
return sum/a.length;
}
static int Maicg(double[]a,double[]b,double va,double vb) {
int cnt=0;
Set se=new TreeSet();
for(int i=0;i<a.length;++i) {
se.add(a[i]);
}
int n,m;
n=a.length;
m=b.length;
for(int i=0;i<b.length-1&&b[i]<vb;i++) {
if(b[i]>va) {
int j=se.size();
se.add(b[i]);
if(j!=se.size()) {
va=(va*n+b[i])/(n+1);
vb=(vb*m-b[i])/(m-1);
cnt++;
}
}
}
return cnt;
}
}
#字节跳动##笔试题目#