Solved by 26 users: tomek, wojtekt, Jacob, DD, dragonghy, dan, marek.cygan, asp, zmy, JohnJones_001, Red75, fangge518, davidsun, Cheryl, mazahaka, gleam, zloy_mipt, pmnox, RAVEman, defrager, UdH-WiNGeR, WsemirZ, ripatti, Dest, Fat, bush.
` <  <  <  <  <  <  <  <  <  < `

## Undirected PS-graphs

Time limit = 5 second(s)

Your program should check if graph is undirected PS-graph.

Undirected PS-graph is undirected graph (or multigraph — graph with multiple edges) that can be produced from one-edge graph by the applying operations:

1) double edge : from "A-B" make two edges "A-B" and "A-B".

2) split edge: from "A-B" make two edges "A-C" and "C-B", where C is new vertex.

Graph description is set of lines, each line contains edge description.

Edge description is two vertex identifiers delimited by space. Vertex identifier is nonempty word from B*, B={A..Z, a..z, 0..9}. Word length is less than 11 letters.

Graph G

```  A B
B C
C D
A D
A C
```
is undirected PS-graph.

It can be produced from edge "A-C" in the following way:

Note that

1. undirected PS-graph can have cycles.
2. What are the two vertices of the starting edge A-B is unknown
3. "A-B" and "B-A" stands for the same edge.

Input. Graph description. Number of edges is less than 21000.

Output. First line should contain YES or NO depending on whether the input graph is PS-graph. If YES, then next line should have description of operation sequence.

When doubling the edge "A-B" one writes

```[A-B A-B]
```

When spliting the edge "A-B" by vertex C one writes

```(A-C C-B)
```

So for the given sample graph G output can be the following:

```A-C
[A-C A-C]
[A-C [A-C A-C]]
[A-C [(A-B B-C) A-C]]
[A-C [(A-B B-C) (A-D D-C)]]
```

Your program should output only the last line. Note that here order of vertices in edge description does matter.

 Input#1```A B B C C D A D C A ``` Output#1```YES [A-C [(A-B B-C) (A-D D-C)]] ```
 Input#2```A B B C A D D C D B D A ``` Output#2```YES [D-C ([D-B ([D-A D-A] A-B)] B-C)] ```
 Input#3```A B B C A D D C D B D A A C ``` Output#3```NO ```

Author:
Artem Voroztsov
9 May 2006

 © acm.mipt DevGroupThe page was generated in 200ms