Postavljanje računarske mreže

U jednom računarskom kabinetu potrebno je uspostaviti neobičnu računarsku mrežu. Potrebno je postaviti računare na \(n\) stolova, pri čemu na nekim stolovima mogu da stoje obični računari (njih imamo na raspolaganju u neograničenom broju), a na nekim posebni serveri (njih posebno moramo kupiti po ceni od \(c_s\) dinara). Neke parove stolova tj. računara na njima je moguće povezati direktno mrežnim kablovima, a neke nije. Cena uspostavljanja mrežnog kabla između bilo koja dva stola je \(c_k\) dinara. Napisati program koji određuje najmanju cenu koju je potrebno platiti tako da je svaki računar ili server ili je mrežnim kablom povezan sa bar jednim serverom (ne obavezno direktno).

Opis ulaza

Sa standardnog ulaza se u prvom redu unose brojevi \(c_s\) (\(0 \leq c_s \leq 1000\)) i \(c_k\) (\(0\leq c_k \leq 1000\)), razdvojeni razmakom. U narednom redu se unosi broj stolova \(n\) (\(2 \leq n \leq 50000\)) i \(m\) broj parova stolova između kojih je moguće postaviti mrežni kabl \(2 \leq m \leq \frac{n(n-1)}{2}\), razdvojeni razmakom. U narednih \(m\) redova unose se parovi brojeva između \(0\) i \(n-1\), razdvojenih razmakom koji određuju stolove između kojih je moguće postaviti kabl.

Opis izlaza

Na standardni izlaz ispisati traženu najmanju cenu.

Primer

Ulaz

850 350 7 6 0 1 0 4 4 2 1 4 3 5 6 5

Izlaz

3450

Rešenje