//============================================================================
// 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>

//============================================================================
struct Schdule{
    char name[20];
    long quantam;
    struct Schdule *list;
};
typedef struct Schdule TSchdule;
//============================================================================
TSchdule *top,*btm;
int Quantam;
//============================================================================
void dump(int *A, int N)
{
    int i;

    for (i=0; i<N; i++){
        if (i)
            printf(" ");
        printf("%d", A[i]);
    }
    printf("\n");
}
//============================================================================
void cdump(char *str)
{
    int i;

    printf("%d:", strlen(str));;
    for (i=0; i<strlen(str); i++){
        if (i)
            printf(" ");
        printf("%02X", (unsigned char)str[i]);
    }
    printf("\n");
}
//============================================================================
int remain(TSchdule *sch, int n)
{
    long i;

    for (i=0; i<n; i++)
        if (sch[i].quantam)
            return 1;
    //printf("r%ld\n", r);
    return 0;
}
//============================================================================
int Spend(long width, long req)
{
    if (req<width)
        return req;
    return width;
}
//============================================================================
void enqueue(TSchdule *sch)
{
    if (top==NULL){
        top=sch;
        btm=sch;
    }else{
       btm->list=sch;
       btm=sch;
    }
    btm->list=NULL;
}
//============================================================================
TSchdule *dequeue()
{
    TSchdule *sch;

    if (top==NULL)
        return NULL;
    sch=top;
    top=top->list;
    return sch;
}
//============================================================================
void process()
{
    long i,tm; int spend; TSchdule *sch;

    tm=0;
    while(sch=dequeue()){
        spend=Spend(Quantam, sch->quantam);
        sch->quantam-=spend;
        tm+=spend;
        //printf("%ld tm:%ld, sp:%d, ", i, tm, spend);
        if (!sch->quantam)
            printf("%s %ld\n", sch->name, tm);
        else
            enqueue(sch);
    }
}
//============================================================================
void input()
{
    long i,n; TSchdule *sch;

    scanf("%ld", &n);
    scanf("%d%*c", &Quantam);
    //printf("n=%ld, Quantam=%d\n", n, Quantam);
    sch=malloc(n*sizeof(TSchdule));
    top=btm=NULL;
    for (i=0; i<n; i++){
        //scanf("%*s");
        scanf("%s", sch[i].name);
        scanf("%ld%*c", &sch[i].quantam);
        //sch[i].order=i;
        enqueue(&sch[i]);
    }
    //for (i=0; i<n; i++)
    //    printf("%s %ld\n", sch[i].name, sch[i].quantam);
    process();
    free(sch);
}
//============================================================================
int main(void)
{
    input();
    return 0;
}
//============================================================================