function Main(input) {   
    var tmp = input[0].split(' ');
    var N= tmp[0];
    var K= tmp[1];
    var A = input[1].split(' ');
    var F = input[2].split(' ');

//    console.log("N:%s K:%s",N,K);
    
  	//降順
    A.sort(function(a,b){
            if( a > b ) return -1;
            if( a < b ) return 1;
            return 0;
    });

  	//昇順
    F.sort(function(a,b){
            if( a > b ) return 1;
            if( a < b ) return -1;
            return 0;
    });
  
  	var T = [];
    for(var i=0;i<N;i++){
      T[i] = A[i]*F[i];
    }
  
//    console.log(A);
//    console.log(F);
//    console.log(T);
  
  	
    for(var j=0;j<K;j++){
      //降順      
      var l = T.length;
      var maxT  = -1;
      var i;
      while (l--) {
        if (T[l] > maxT) { 
          	maxT = T[l];
        	i = l;		
        }
      }
//     console.log("maxT:%s i:%s j:%s",maxT,i,j);


      if(maxT==0){
        break;
      }
      
      A[i] = A[i] - 1; 
      T[i] = A[i] * F[i]
    }
//    console.log(T);
  
    var l = T.length;
    var maxT  = -1;
    while (l--) {
      if (T[l] > maxT) { 
        maxT = T[l];
      }
    }

    console.log(maxT);
}

Main(require("fs").readFileSync("/dev/stdin", "utf8").split("\n"));