#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct {
    char name[20];
    int hp;
} Monster;

// モンスター生成関数
Monster creMonster(char *name, int hp){
    Monster m;
    strcpy(m.name, name);
    m.hp = hp;
    return m;
}

int main(void){
    int n, i;
    Monster *monsters;

    scanf("%d", &n);

    // ★ここが課題の本質
    monsters = (Monster *)malloc(sizeof(Monster) * n);

    // モンスターを作る
    for(i = 0; i < n; i++){
        char name[20];
        int hp;
        scanf("%s %d", name, &hp);
        monsters[i] = creMonster(name, hp);
    }

    // 表示
    for(i = 0; i < n; i++){
        printf("%s %d\n", monsters[i].name, monsters[i].hp);
    }

    // メモリ解放
    free(monsters);

    return 0;
}