package oj.test;
import java.util.*;
public class Demo6 {
/**
* 内存池分配问题(最优适应算法)
* 输入:
* 内存池大小
* 第一次分配内存的大小
* 第二次分配内存的大小
* 第三次分配内存的大小
* 释放第几次分配的内存
* 第四次分配内存大小
*
* 输出:
* 每次分配成功,则输出剩余内存块的个数和大小
* 有一次分配失败,则输出"alloc mem fail!"
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int sum = sc.nextInt();
int n1 = sc.nextInt();
int n2 = sc.nextInt();
int n3 = sc.nextInt();
int sf = sc.nextInt();
int n4 = sc.nextInt();
boolean flag = fun(sum,n1,n2,n3,sf,n4);
if(flag==false)
sop("alloc mem fail!");
}
private static boolean fun(int sum, int n1, int n2, int n3, int sf, int n4) {
int remain = sum;
if(n1<=sum)
remain = remain-n1;
else
return false;
if(n2<=remain)
remain = remain-n2;
else
return false;
if(n3<=remain)
remain = remain - n3;
else return false;
int out = 0;
if(sf==1){
out = 100;
}else
if(sf==2)
out = 200;
else
if(sf==3)
out = 300;
int[] arr = {remain,out};
Arrays.sort(arr);
if(n4<arr[0]){
sop(2);
sop(arr[0]-n4);
sop(arr[1]);
}else if(n4==arr[0]){
sop(1);
sop(arr[1]);
}else if(n4<arr[1]){
sop(2);
sop(arr[0]);
sop(arr[1]-n4);
}else if(n4==arr[1]){
sop(1);
sop(arr[0]);
}else
return false;
return true;
}
private static void sop(Object o) {
System.out.println(o);
}
}