from math import floor
from decimal import Decimal

지역구_의석수 = "지역구_의석수"
득표수 = "득표수"
의석할당정당_여부 = "의석할당정당_여부"
정당명 = "정당명"
득표율 = "득표율"
연동배분_의석수 = "연동배분_의석수"
비례득표율 = "비례득표율"
조정된_비례대표_의석수 = " 조정된_비례대표_의석수"
병립형배분_의석수 = "병립형배분_의석수"
의석수 = "의석수"


def 소수점아래만(i):
    return i - int(i)


정당수, 유권자수 = map(int, input().split())
모든_정당 = []
투표수 = 0
for id in range(정당수):
    (정당의_이름, 정당의_지역구_의석수, 정당의_득표수) = input().split()
    정당의_지역구_의석수 = Decimal(정당의_지역구_의석수)
    정당의_득표수 = Decimal(정당의_득표수)
    투표수 += 정당의_득표수
    모든_정당.append(
        {
            정당명: 정당의_이름,
            지역구_의석수: 정당의_지역구_의석수,
            득표수: 정당의_득표수,
            연동배분_의석수: 0,
            병립형배분_의석수: 0,
            "id": id + 1,
        }
    )

# STAGE 1
N_minus_R = 47
모든_의석할당정당_득표수_합 = 0
모든_의석할당정당 = []

총_연동배분_의석수 = 0
for 정당 in 모든_정당:
    정당[득표율] = 정당[득표수] / 투표수
    정당[의석할당정당_여부] = 정당[득표율] >= 0.03 or 정당[지역구_의석수] >= 5
    if 정당[의석할당정당_여부]:
        모든_의석할당정당.append(정당)
        모든_의석할당정당_득표수_합 += 정당[득표수]
        N_minus_R += 정당[지역구_의석수]

for 정당 in 모든_정당:
    정당[비례득표율] = 정당[득표수] / 모든_의석할당정당_득표수_합
    if 정당[의석할당정당_여부]:
        임시_연동배분_의석수 = (N_minus_R * 정당[비례득표율] - 정당[지역구_의석수]) / 2
        if 임시_연동배분_의석수 >= 1:
            정당[연동배분_의석수] = floor(임시_연동배분_의석수 + Decimal(0.5))
            총_연동배분_의석수 += 정당[연동배분_의석수]

# STAGE 2
모든_의석할당정당_중_0이상 = [정당 for 정당 in 모든_의석할당정당 if 정당[연동배분_의석수] > 0]

# STAGE 2-1
if 총_연동배분_의석수 < 30:
    정당들 = sorted(
        [
            (정당, (소수점아래만((30 - 총_연동배분_의석수) * 정당[비례득표율]), 정당["id"]))
            for 정당 in 모든_의석할당정당_중_0이상
        ],
        key=lambda 튜플: 튜플[1],
        reverse=True,
    )
    for 정당 in 모든_의석할당정당_중_0이상:
        정당[연동배분_의석수] += int((30 - 총_연동배분_의석수) * 정당[비례득표율])

    총_연동배분_의석수 = sum(map(lambda 정당: 정당[연동배분_의석수], 모든_의석할당정당_중_0이상))
    for 인덱스 in range(30 - 총_연동배분_의석수):
        정당들[인덱스 % len(정당들)][0][연동배분_의석수] += 1
        총_연동배분_의석수 += 1
# STAGE 2-2
elif 총_연동배분_의석수 > 30:
    정당들 = sorted(
        [
            (정당, (소수점아래만((30 * 정당[연동배분_의석수]) / 총_연동배분_의석수), 정당["id"]))
            for 정당 in 모든_의석할당정당_중_0이상
        ],
        key=lambda 튜플: 튜플[1],
        reverse=True,
    )
    for 정당 in 모든_의석할당정당_중_0이상:
        정당[연동배분_의석수] = 30 * 정당[연동배분_의석수] // 총_연동배분_의석수

    총_연동배분_의석수 = sum(map(lambda 정당: 정당[연동배분_의석수], 모든_의석할당정당_중_0이상))
    for 인덱스 in range(30 - 총_연동배분_의석수):
        정당들[인덱스 % len(정당들)][0][연동배분_의석수] += 1
        총_연동배분_의석수 += 1

# STAGE 3
총_병립형배분_의석수 = 0

정당들 = sorted(
    [(정당, (소수점아래만(17 * 정당[비례득표율]), 정당["id"])) for 정당 in 모든_의석할당정당],
    key=lambda 튜플: 튜플[1],
    reverse=True,
)
for 정당 in 모든_의석할당정당:
    정당[병립형배분_의석수] = int(17 * 정당[비례득표율])
    총_병립형배분_의석수 += 정당[병립형배분_의석수]

for 인덱스 in range(17 - 총_병립형배분_의석수):
    정당들[인덱스 % len(정당들)][0][병립형배분_의석수] += 1

for 정당 in 모든_정당:
    정당[의석수] = 정당[지역구_의석수] + 정당[연동배분_의석수] + 정당[병립형배분_의석수]

모든_정당.sort(key=lambda 정당: (정당[의석수], 정당[정당명]), reverse=True)

for 정당 in 모든_정당:
    print(정당[정당명], 정당[의석수])
