Задача №111978. Телефонные номера
Неотъемлемой частью программного обеспечения любого мобильного телефона является записная книжка. В самых первых мобильных телефонах в ней можно было хранить лишь имена абонентов и их телефонные номера. В более современных моделях в ней можно также хранить множество другой полезной информации - электронный адрес человека, его фотографию, ссылки на его страницы в социальных сетях и дату его рождения. Однако, при реализации даже самой простой версии этой программы, позволяющей работать только с телефонными номерами, разработчики иногда сталкиваются с некоторыми сложностями.
Будем считать, что любой телефонный номер состоит из 11 цифр и делится на три части, каждая из которых является числом без ведущих нулей. Первая часть состоит из одной, двух или трех цифр и является кодом страны, в которой этот телефон зарегистрирован. Вторая часть может состоять из трех, четырех или пяти цифр, и может являться или кодом региона, в котором зарегистрирован номер, или кодом мобильного оператора, которому этот номер принадлежит. Третья часть состоит из всех оставшихся цифр номера и является номером конкретного абонента.
При отображении телефонного номера на экране телефона, части этого номера принято отделять друг от друга различными символами так, чтобы номер было проще прочитать и запомнить. Так, перед кодом страны обычно ставится символ <<+>>, код региона или оператора берется в скобки, номер абонента разделяется символами <<->> на несколько частей. При этом, то, на сколько частей он разбивается, напрямую зависит от количества цифр в нем:
- если номер абонента состоит из трех цифр, то он представляет собой одну часть, состоящую из трех цифр;
- если номер абонента состоит из четырех цифр, то он разбивается на две части, каждая из которых состоит из двух цифр;
- если номер абонента состоит из пяти цифр, то он разбивается на две части, первая из которых состоит из трех цифр, а вторая - из двух;
- если номер абонента состоит из шести цифр, то он разбивается на три части, каждая из которых состоит из двух цифр;
- если номер абонента состоит из семи цифр, то он разбивается на три части, первая из которых состоит из трех цифр, а все остальные - из двух.
Естественно, что человек, заносящий новый номер в записную книжку своего телефона, не станет задумываться об этих правилах, а просто введет его как последовательность из 11 цифр. Однако, перед отображением номера на экране, программное обеспечение телефона должно выяснить, какая часть этого номера является кодом страны, какая - кодом региона или оператора, а какая - номером абонента, и отформатировать номер по правилам, описанным выше. Чтобы сделать эту задачу разрешимой, в память телефона записывается информация о том, какие в данный момент существуют коды государств и какие в этих государствах существуют коды операторов или регионов. Вам необходимо реализовать программу, которая, имея эту информацию, будет правильно форматировать номера, сохраненные в записной книжке телефона.
Первая строка файла содержит одно целое число \(n\) (\(1 \le n \le 100\)) - количество государств, информация про телефонные коды которых записана в память телефона. Далее следуют \(n\) описаний этих государств, разделенных переводами строк.
Первая строка описания каждого государства содержит два целых числа \(c\) и \(k\) (\(1 \le c \le 999\), \(1 \le k \le 100\)) - телефонный код этого государства и количество операторов или регионов, существующих в этом государстве. Следующие \(k\) строк описания этого государства содержат целые числа, каждое из которых не меньше 100 и не больше 99999 - коды операторов или регионов, зарегистрированных в этом государстве.
Следующая строка входного файла содержит одно целое число \(m\) (\(1 \le m \le 10{\,}000\)) - количество телефонных номеров, которые необходимо отформатировать. Следующие \(m\) строк содержат сами номера - строки, состоящие ровно из 11 цифр.
Гарантируется, что ни один данный вам номер невозможно разбить на код государства, код оператора или региона и номер абонента более, чем одним способом.
Выведите номера, данные вам во входном файле, отформатированными по правилам, описанным в условии. Каждый номер необходимо вывести в отдельной строке. Номера необходимо выводить в том же порядке, в котором они были перечислены во входном файле.
Вместо номеров, корректного разбиения которых на код государства, код оператора или региона и номер абонента не существует, необходимо вывести слово "Incorrect".
2 7 3 981 3517 812 351 3 34712 1234 963 8 79818266456 35196328463 78122472557 01234567890 73517960326 35134712239 35112342013 78120102030
+7(981)826-64-56 +351(963)284-63 +7(812)247-25-57 Incorrect +7(3517)96-03-26 +351(34712)239 +351(1234)20-13 Incorrect