Many programming languages provide a directive that allows the contents of one file to be inserted into another. This directive is commonly called include. In this task, you are required to create a simple preprocessor that implements this directive. You are given a set of text files. Whenever a line appears as #include <file-name> in a file, this line should be replaced with the contents of the specified file. The file name in the directive can be either absolute or relative; a relative path always begins with the file, directory name, or the special sequence ... The line may contain arbitrary spaces that do not break the include and file-name elements. If no file exists with the given file name, the line should be simply removed.
The input consists of a sequence of file descriptions. Each description starts with a line containing the file path in Windows file system format. The path is absolute and does not contain spaces or consecutive \ symbols. The special sequence .. may be used as a path element to indicate moving to the parent directory. No other special sequences are used. Any directory or file name consists of Latin letters, digits, and the "." symbol. File name comparisons should be case-insensitive. Then follows the content of the file. The sequence ^Z marks the end of the file, and is always written on a separate line, so each line in the file, including the last, ends with a newline. The input file contains at least one description. The file size does not exceed KB. Each line in the file does not exceed characters. All file names in the test (including those in include directives) are valid absolute or relative paths.
After processing the preprocessor directives, output the content of the first file. It is guaranteed that the output size will not exceed KB. If processing the directives results in a cyclic process, output the line "Too long file".
Example 1