Include directives
Many programming languages feature a directive that allows the contents of one file to be inserted into another. This directive is commonly known as "include." In this task, you are required to implement a simple preprocessor that handles this directive. You will be provided with a collection of text files. Whenever a line in a file appears as "#include <file-name>", it should be replaced by 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 name of the file, directory, or the special sequence "..". This line may contain arbitrary spaces that do not disrupt the elements of the include directive and file-name. If the specified file does not exist, the line should simply be removed from the file.
Input
The input consists of a series of file descriptions. Each description starts with a line that provides the file path in Windows file system format. The path is absolute and does not contain spaces or consecutive "\" symbols. The special sequence ".." can be used to indicate a move to the parent directory. No other special sequences are used. Directory and file names consist of Latin letters, digits, and the symbol ".". File name comparisons are case-insensitive. Following this is the content of the file. The sequence "^Z" marks the end of the file, and it is always on a separate line, ensuring each line, including the last one, ends with a newline. The input file contains at least one description. The file size does not exceed 40 KB, and each line in the file is no longer than 1000 characters. All file names in the test, including those in include directives, are valid absolute or relative paths.
Output
Output the contents of the first file after processing the preprocessor directives. It is guaranteed that the output size will not exceed 400 KB. If processing the directives results in a cyclic process, output the line "Too long file".
Example