Let there be a rectangular ASCII-art image of a digital circuit, composed of logical elements and wires connecting them.
Logical elements are represented as rectangular areas bordered by '#' (ASCII 35) characters.
Each element always contains a description composed of digits and small Latin letters.
Description may be split into several parts, separated by spaces, and span multiple lines.
Wires are represented as sequences of '.' (ASCII 46) characters.
The rest of the circuit is filled with spaces.
Any two elements can not be adjacent to each other (there is always space between them).
Wires can only connect at 90 ∘ angle.
Parallel wires can not be adjacent to each other (there is always space between them).
An element is considered connected to a wire if their characters are adjacent either horizontally or vertically.
Wires can not cross area occupied by an element.
Bus is a set of connected wires.
Given the image, determine the set of logical elements and buses connected to them.
Input contains an ASCII image.
Output the number of logical elements N,
followed by N lines, with each line containing a description of a single element.
Parts of a description must be separated by spaces.
Order of elements in output must correspond to the order at which elements occur
in the input image when traversing by rows from the top-left corner.
Next, output the number of buses M, followed
by sets of connected elements.
Each set starts with a number of elements in it,
followed by element indices
(starting from zero).
Total number of characters in the image does not exceed 106.