#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>

#include <algorithm>
#include <iostream>
#include <string>
#include <queue>
#include <map>

using namespace std;

typedef long long LL;

const int Max = 256;

struct prs{
    int e,d;
    bool operator <(const prs &p)const{
        return d < p.d;
    }
};

prs A[Max];
int N,oo,K;
int F[Max][Max];

int cal(int x,int d){
    if (x > N) return d == 0 ? 0 : oo;
    int &r = F[x][d];
    if (r > -1) return r;
    r = cal(x + 1,d) + A[x].e;
    if (d > 0)
        r = min(r,cal(x + 1,d - 1) + A[x].d * d);
    r = min(oo,r);
//    printf("%d %d : %d\n",x,d,r);
    return r;
}

int main(){
    int ct = 0;
    while (scanf("%d%d",&N,&K) != EOF && N){
        for (int i = 1;i <= N;i++)
            scanf("%d%d",&A[i].e,&A[i].d);
        sort(A + 1,A + N + 1);
        memset(F,-1,sizeof(F));
        oo = K + 1;
        int r = N;
        while (r >= 0){
            if (cal(1,r) <= K)
                break;
            --r;
        }
        printf("%d: ",++ct);
        if (r == -1) puts("Mission Impossible");
        else printf("%d\n",r);
    }
    return 0;
}
