#include <iostream>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <string>
#include <cstring>
#include <cmath>
#include <climits>
#include <algorithm>
#include <cstdio>
#include <ctime>
#include <fstream>
#include <sstream>
using namespace std;
typedef unsigned long long ULL;
typedef long long LL;
#define REP(i,n) FOR(i,0,n)
#define FOR(i,a,b) for(int i = a; i < b; i++)
#define ROF(i,a,b) for(int i=a;i>b;i--)
#define min(a,b) (a<b?a:b)
#define max(a,b) (a>b?a:b)
#define GI ({int t;scanf("%d",&t);t;})
#define GL ({LL t;scanf("%lld",&t);t;})
#define GD ({double t;scanf("%lf",&t);t;})
#define pb push_back
#define mp make_pair
#define fii freopen("input.txt","r",stdin)
#define fio freopen("output.txt","w",stdout)
#define MOD 1000000007
#define INF (int)1e9
#define EPS 1e-9
#define TR(a,it) for (typeof((a).begin()) it = (a).begin(); it != (a).end(); ++it)
struct Edge
{
int a, b;
int weight;
int chef; /// 0 for chef
bool operator < (const Edge &other) const {
if (chef != other.chef) /// sort by chef edges first
return chef < other.chef;
if (chef == 1) /// if non-chef edges sort by decreasing order of wt
return weight < other.weight;
if (chef == 0) /// if chef edges sort by increasing order of wt
return weight > other.weight;
}
Edge(int _a = 0, int _b = 0, int _weight = 0, int _chef = 0) {
a = _a, b = _b, weight = _weight, chef = _chef;
}
};
int parent[5005];
int find_set(int i)
{
if (parent[i] == i) return i;
return parent[i] = find_set(parent[i]);
}
void union_set(int i, int j)
{
parent[i] = j;
}
int main()
{
//fii; fio;
int testCases, t = 0, n, m1, m2, p, q, wt;
scanf("%d", &testCases);
while (testCases--) {
vector<Edge> edges;
vector<int> MSTedges;
scanf("%d %d %d", &n, &m1, &m2);
for (int i=0; i<m1; i++) {
scanf("%d %d %d", &p, &q, &wt);
edges.pb(Edge(p, q, wt, 1));
}
for (int i=0; i<m2; i++) {
scanf("%d %d %d", &p, &q, &wt);
edges.pb(Edge(p, q, wt, 0));
}
sort(edges.begin(), edges.end());
//printf("Number of edges : %d\n", edges.size());
/*printf("Edges:\n");
for (int i=0; i<edges.size(); i++)
printf("%d %d %d %d\n", edges[i].a, edges[i].b, edges[i].weight, edges[i].chef);
*/
for (int i=0; i<n; i++)
parent[i] = i;
int x, y;
for (int i=0; i < edges.size(); i++) {
if ( (x = find_set(edges[i].a)) != (y = find_set(edges[i].b)) ) {
MSTedges.pb(i);
union_set(x, y);
}
}
LL chef_money = 0, others_money = 0;
for (int i=0; i<MSTedges.size(); i++) {
int idx = MSTedges[i];
if (edges[idx].chef == 0)
chef_money += edges[i].weight;
else
others_money += edges[i].weight;
}
if ((int)MSTedges.size() != (n-1))
printf("Impossible\n");
else
printf("%lld %lld\n", chef_money, chef_money + others_money);
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bGlzdD4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxjc3RyaW5nPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxjbGltaXRzPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y3RpbWU+CiNpbmNsdWRlIDxmc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIFVMTDsKdHlwZWRlZiBsb25nIGxvbmcgTEw7CgojZGVmaW5lIFJFUChpLG4pICAgICAgRk9SKGksMCxuKQojZGVmaW5lIEZPUihpLGEsYikgICAgZm9yKGludCBpID0gYTsgaSA8IGI7IGkrKykKI2RlZmluZSBST0YoaSxhLGIpICAgIGZvcihpbnQgaT1hO2k+YjtpLS0pCiNkZWZpbmUgbWluKGEsYikgICAgICAoYTxiP2E6YikKI2RlZmluZSBtYXgoYSxiKSAgICAgIChhPmI/YTpiKQojZGVmaW5lIEdJIAkJICAgICAgKHtpbnQgdDtzY2FuZigiJWQiLCZ0KTt0O30pCiNkZWZpbmUgR0wgCQkgICAgICAoe0xMIHQ7c2NhbmYoIiVsbGQiLCZ0KTt0O30pCiNkZWZpbmUgR0QgCQkgICAgICAoe2RvdWJsZSB0O3NjYW5mKCIlbGYiLCZ0KTt0O30pCiNkZWZpbmUgcGIgCSAgICAgICAgICBwdXNoX2JhY2sKI2RlZmluZSBtcCAJICAgICAgICAgIG1ha2VfcGFpcgojZGVmaW5lIGZpaSAJICAgICAgZnJlb3BlbigiaW5wdXQudHh0IiwiciIsc3RkaW4pCiNkZWZpbmUgZmlvIAkgICAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KQojZGVmaW5lIE1PRCAJICAgICAgMTAwMDAwMDAwNwojZGVmaW5lIElORgkgICAgICAgICAgKGludCkxZTkKI2RlZmluZSBFUFMJICAgICAgICAgIDFlLTkKI2RlZmluZSBUUihhLGl0KSAgICAgIGZvciAodHlwZW9mKChhKS5iZWdpbigpKSBpdCA9IChhKS5iZWdpbigpOyBpdCAhPSAoYSkuZW5kKCk7ICsraXQpCgpzdHJ1Y3QgRWRnZQp7CiAgICAgICBpbnQgYSwgYjsKICAgICAgIGludCB3ZWlnaHQ7CiAgICAgICBpbnQgY2hlZjsgICAgICAgIC8vLyAwIGZvciBjaGVmCgogICAgICAgYm9vbCBvcGVyYXRvciA8IChjb25zdCBFZGdlICZvdGhlcikgY29uc3QgewogICAgICAgICAgICBpZiAoY2hlZiAhPSBvdGhlci5jaGVmKSAgICAgICAgIC8vLyBzb3J0IGJ5IGNoZWYgZWRnZXMgZmlyc3QKICAgICAgICAgICAgICAgIHJldHVybiBjaGVmIDwgb3RoZXIuY2hlZjsKICAgICAgICAgICAgaWYgKGNoZWYgPT0gMSkgICAgICAgICAgICAgICAgICAvLy8gaWYgbm9uLWNoZWYgZWRnZXMgc29ydCBieSBkZWNyZWFzaW5nIG9yZGVyIG9mIHd0CiAgICAgICAgICAgICAgICByZXR1cm4gd2VpZ2h0IDwgb3RoZXIud2VpZ2h0OwogICAgICAgICAgICBpZiAoY2hlZiA9PSAwKSAgICAgICAgICAgICAgICAgIC8vLyBpZiBjaGVmIGVkZ2VzIHNvcnQgYnkgaW5jcmVhc2luZyBvcmRlciBvZiB3dAogICAgICAgICAgICAgICAgcmV0dXJuIHdlaWdodCA+IG90aGVyLndlaWdodDsKICAgICAgIH0KCiAgICAgICBFZGdlKGludCBfYSA9IDAsIGludCBfYiA9IDAsIGludCBfd2VpZ2h0ID0gMCwgaW50IF9jaGVmID0gMCkgewogICAgICAgICAgICBhID0gX2EsIGIgPSBfYiwgd2VpZ2h0ID0gX3dlaWdodCwgY2hlZiA9IF9jaGVmOwogICAgICAgfQp9OwoKaW50IHBhcmVudFs1MDA1XTsKCmludCBmaW5kX3NldChpbnQgaSkKewogICAgaWYgKHBhcmVudFtpXSA9PSBpKSByZXR1cm4gaTsKCXJldHVybiBwYXJlbnRbaV0gPSBmaW5kX3NldChwYXJlbnRbaV0pOwp9Cgp2b2lkIHVuaW9uX3NldChpbnQgaSwgaW50IGopCnsKICAgICBwYXJlbnRbaV0gPSBqOwp9CgppbnQgbWFpbigpCnsKCS8vZmlpOyBmaW87CglpbnQgdGVzdENhc2VzLCB0ID0gMCwgbiwgbTEsIG0yLCBwLCBxLCB3dDsKCXNjYW5mKCIlZCIsICZ0ZXN0Q2FzZXMpOwoJd2hpbGUgKHRlc3RDYXNlcy0tKSB7CgkgICAgdmVjdG9yPEVkZ2U+IGVkZ2VzOwogICAgICAgIHZlY3RvcjxpbnQ+IE1TVGVkZ2VzOwoKCQlzY2FuZigiJWQgJWQgJWQiLCAmbiwgJm0xLCAmbTIpOwoKCQlmb3IgKGludCBpPTA7IGk8bTE7IGkrKykgewogICAgICAgICAgICBzY2FuZigiJWQgJWQgJWQiLCAmcCwgJnEsICZ3dCk7CiAgICAgICAgICAgIGVkZ2VzLnBiKEVkZ2UocCwgcSwgd3QsIDEpKTsKCQl9CgoJCWZvciAoaW50IGk9MDsgaTxtMjsgaSsrKSB7CiAgICAgICAgICAgIHNjYW5mKCIlZCAlZCAlZCIsICZwLCAmcSwgJnd0KTsKICAgICAgICAgICAgZWRnZXMucGIoRWRnZShwLCBxLCB3dCwgMCkpOwogICAgICAgIH0KCiAgICAgICAgc29ydChlZGdlcy5iZWdpbigpLCBlZGdlcy5lbmQoKSk7CgogICAgICAgIC8vcHJpbnRmKCJOdW1iZXIgb2YgZWRnZXMgOiAlZFxuIiwgZWRnZXMuc2l6ZSgpKTsKICAgICAgICAvKnByaW50ZigiRWRnZXM6XG4iKTsKICAgICAgICBmb3IgKGludCBpPTA7IGk8ZWRnZXMuc2l6ZSgpOyBpKyspCiAgICAgICAgICAgIHByaW50ZigiJWQgJWQgJWQgJWRcbiIsIGVkZ2VzW2ldLmEsIGVkZ2VzW2ldLmIsIGVkZ2VzW2ldLndlaWdodCwgZWRnZXNbaV0uY2hlZik7CiAgICAgICAgKi8KCiAgICAgICAgZm9yIChpbnQgaT0wOyBpPG47IGkrKykKICAgICAgICAgICAgcGFyZW50W2ldID0gaTsKCiAgICAgICAgaW50IHgsIHk7CiAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgZWRnZXMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgIGlmICggKHggPSBmaW5kX3NldChlZGdlc1tpXS5hKSkgIT0gKHkgPSBmaW5kX3NldChlZGdlc1tpXS5iKSkgKSB7CiAgICAgICAgICAgICAgTVNUZWRnZXMucGIoaSk7CiAgICAgICAgICAgICAgdW5pb25fc2V0KHgsIHkpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgTEwgY2hlZl9tb25leSA9IDAsIG90aGVyc19tb25leSA9IDA7CgogICAgICAgIGZvciAoaW50IGk9MDsgaTxNU1RlZGdlcy5zaXplKCk7IGkrKykgewogICAgICAgICAgICBpbnQgaWR4ID0gTVNUZWRnZXNbaV07CiAgICAgICAgICAgIGlmIChlZGdlc1tpZHhdLmNoZWYgPT0gMCkKICAgICAgICAgICAgICAgIGNoZWZfbW9uZXkgKz0gZWRnZXNbaV0ud2VpZ2h0OwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBvdGhlcnNfbW9uZXkgKz0gZWRnZXNbaV0ud2VpZ2h0OwogICAgICAgIH0KCiAgICAgICAgaWYgKChpbnQpTVNUZWRnZXMuc2l6ZSgpICE9IChuLTEpKQogICAgICAgICAgICBwcmludGYoIkltcG9zc2libGVcbiIpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgcHJpbnRmKCIlbGxkICVsbGRcbiIsIGNoZWZfbW9uZXksIGNoZWZfbW9uZXkgKyBvdGhlcnNfbW9uZXkpOwoJfQoKCXJldHVybiAwOwp9Cg==