Codeforces Round 332 (Div. 2) |
---|

Finished |

Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

bitmasks

dp

trees

*2600

No tag edit access

The problem statement has recently been changed. View the changes.

×
E. Sandy and Nuts

time limit per test

3 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputRooted tree is a connected graph without any simple cycles with one vertex selected as a root. In this problem the vertex number 1 will always serve as a root.

Lowest common ancestor of two vertices *u* and *v* is the farthest from the root vertex that lies on both the path from *u* to the root and on path from *v* to the root. We will denote it as *LCA*(*u*, *v*).

Sandy had a rooted tree consisting of *n* vertices that she used to store her nuts. Unfortunately, the underwater storm broke her tree and she doesn't remember all it's edges. She only managed to restore *m* edges of the initial tree and *q* triples *a*_{i}, *b*_{i} and *c*_{i}, for which she supposes *LCA*(*a*_{i}, *b*_{i}) = *c*_{i}.

Help Sandy count the number of trees of size *n* with vertex 1 as a root, that match all the information she remembered. If she made a mess and there are no such trees then print 0. Two rooted trees are considered to be distinct if there exists an edge that occur in one of them and doesn't occur in the other one.

Input

The first line of the input contains three integers *n*, *m* and *q* (1 ≤ *n* ≤ 13, 0 ≤ *m* < *n*, 0 ≤ *q* ≤ 100) — the number of vertices, the number of edges and *LCA* triples remembered by Sandy respectively.

Each of the next *m* lines contains two integers *u*_{i} and *v*_{i} (1 ≤ *u*_{i}, *v*_{i} ≤ *n*, *u*_{i} ≠ *v*_{i}) — the numbers of vertices connected by the *i*-th edge. It's guaranteed that this set of edges is a subset of edges of some tree.

The last *q* lines contain the triplets of numbers *a*_{i}, *b*_{i}, *c*_{i} (1 ≤ *a*_{i}, *b*_{i}, *c*_{i} ≤ *n*). Each of these triples define *LCA*(*a*_{i}, *b*_{i}) = *c*_{i}. It's not guaranteed that there exists a tree that satisfy all the given *LCA* conditions.

Output

Print a single integer — the number of trees of size *n* that satisfy all the conditions.

Examples

Input

4 0 0

Output

16

Input

4 0 1

3 4 2

Output

1

Input

3 1 0

1 2

Output

2

Input

3 0 2

2 3 2

2 3 1

Output

0

Input

4 1 2

1 2

2 2 2

3 4 2

Output

1

Note

In the second sample correct answer looks like this:

In the third sample there are two possible trees:

In the fourth sample the answer is 0 because the information about *LCA* is inconsistent.

Codeforces (c) Copyright 2010-2024 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: May/19/2024 12:19:37 (h1).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|