A. Отображение количества лайков
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Поликарп работает над внедрением отображения лайков в социальной сети Codehorses. Количество лайков следует отображать в виде, который легко бы читался пользователями. Решено, что для больших значений будет использована запись вида 123K (сто двадцать три тысячи) или даже 56M (пятьдесят шесть миллионов).

Утверждена следующая стратегия отображения:

  • количество будет отображено либо в виде целого числа от 0 до 999, либо в виде целого положительного количества тысяч (от 1K до 999K), либо в виде целого положительного количества миллионов (от 1M и далее);
  • заданное точное количество лайков $$$n$$$ при отображении должно быть округлено к ближайшей записи из пункта выше (при неоднозначности округления надо округлять вверх) — например, $$$1785$$$ должно быть округлено к 2K, но не к 1K; $$$4500000$$$ должно быть округлено к 5M.

Помогите Поликарпу реализовать эту часть функциональности: по заданному целому неотрицательному числу лайков $$$n$$$ выведите его запись в интерфейсе Codehorses.

Входные данные

В первой строке записано целое число $$$t$$$ ($$$1 \le t \le 1000$$$) — количество наборов входных данных в тесте. Далее следуют описания $$$t$$$ наборов входных данных, по одному в строке.

Описание набора состоит из строки, которая содержит целое неотрицательное число $$$n$$$ ($$$0 \le n \le 2\cdot10^9$$$) — количество лайков.

Выходные данные

Выведите $$$t$$$ ответов на заданные наборы входных данных в порядке из записи в тесте. Каждое выведенное значение должно иметь один из следующих видов:

  • либо целое число от 0 до 999 — соответствует просто записанному количеству,
  • либо запись количества тысяч от 1K до 999K,
  • либо запись количества миллионов от 1M до 2000M.

Ответ равен такой записи, которая является ближайшей (с точки зрения модуля разности) к заданному числу $$$n$$$. Если такую форму округления можно совершить неоднозначно, то округлите вверх (к большему значению).

Пример
Входные данные
9
999
123
0
1782
31415926
1500
999999
35499710
2000000000
Выходные данные
999
123
0
2K
31M
2K
1M
35M
2000M
Примечание

Рассмотрим некоторые наборы входных данных:

  • $$$1782$$$ может быть представлено либо как 1K, либо как 2K, но 2K — ближайшая запись;
  • $$$1500$$$ одинаково удалено и от 1K, и от 2K, поэтому надо округлять вверх;
  • $$$999999$$$ должно быть записано как 1M, так как такая запись ближе, чем 999K.