import java.util.Scanner;
public class Shuisou {
public static int p[]=new int[20];
public static int w[]=new int[20];
public static double temp[]=new double[20];
public static void main(String args[]){
Scanner in = new Scanner(System.in);
int m=in.nextInt();
int cap=in.nextInt();
for(int i=0;i<m;i++){
w[i]=in.nextInt();
p[i]=in.nextInt();
}
for(int i=0;i<m;i++){
temp[i]=p[i]*1.0/w[i];
}
int s;
s=ff(temp,m);
int sum=0;
sum=w[s]+sum;
double total=0;
total=total+p[s];
int mm=0;
temp[s]=0;
System.out.println(total);
//每次装单位质量最大的
while(sum<=cap&&mm<m-1){
s=ff(temp,m);
temp[s]=0;
sum=w[s]+sum;
if(sum<=cap){
total=total+p[s];
}
System.out.println(total);
mm++;
}
//判断是否装满
if(cap>sum-w[s]){
int cha=cap-sum+w[s];
double least=cha*1.0/(w[s]*1.0)*(p[s]);
total=total+least;
}
System.out.println(total);
}
public static int ff(double[] temp2,int m){
double max=temp2[0];
int k=0;
for(int i=1;i<m;i++){
if(max<temp[i]){
max=temp[i];
k=i;
}
}
temp[k]=0;
return k;
}
}