Опишем синтаксис языка программирования $$$EX$$$:
В языке $$$EX$$$ все инструкции, кроме объявлений функций, могут находиться только в теле какой-либо функции. Функции нельзя объявлять внутри других функций. Функцию можно вызывать до её определения, а также в её собственном теле. Имена функций и исключений в языке $$$EX$$$ должны подходить под регулярное выражение $$$[a-zA-Z0-9\_]+$$$, быть уникальными и не совпадать с ключевыми словами [$$$func$$$, $$$try$$$, $$$suppress$$$, $$$maybethrow$$$]. Текст программы может содержать произвольное количество пробелов и пустых срок.
На вход подаётся программа на языке $$$EX$$$ и число $$$x$$$. Для каждой функции программы необходимо вывести не более $$$x$$$ исключений, которые могут вылететь из неё. Выводить следует $$$x$$$ лексикографически наименьших исключений.
В первой строке входных данных находится единственное число — $$$x$$$ ($$$1 \leq x \leq 10^3$$$). Во второй строке находится единственное число — $$$n$$$, количество объявлений функций в коде. В последующих строках находится текст программы на языке $$$EX$$$.
Количество вызовов функций в коде не превосходит $$$10^3$$$.
Количество видов исключений в коде не превосходит $$$10^3$$$.
Количество символов в коде не превосходит $$$10^6$$$.
Для каждой функции, объявленной в программе, необходимо вывести одну или несколько строк:
1
2
func func1() {
maybethrow exc1
try {
maybethrow exc2
maybethrow exc3
} suppress exc1, exc2, exc3
maybethrow exc4
}
func main() {
try {
func1()
} suppress exc1
}
func1: 1 exc1 main: 1 exc4
| Название |
|---|


