#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll MOD = 1000000007;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<ll> cost(n);
for(int i = 0; i < n; i++){
cin >> cost[i];
}
int m;
cin >> m;
vector<vector<int>> adj(n);
for(int i = 0; i < m; i++){
int u, v;
cin >> u >> v;
--u; --v; // convert to 0-based
adj[u].push_back(v);
}
// Tarjan’s SCC globals
vector<int> disc(n, -1), low(n, 0);
vector<bool> onstack(n, false);
stack<int> st;
int timer = 0;
vector<vector<int>> sccs;
// Tarjan’s DFS (recursive)
function<void(int)> dfs = [&](int u) {
disc[u] = low[u] = timer++;
st.push(u);
onstack[u] = true;
for(int v : adj[u]){
if(disc[v] == -1) {
dfs(v);
low[u] = min(low[u], low[v]);
}
else if(onstack[v]) {
low[u] = min(low[u], disc[v]);
}
}
// If u is root of an SCC, pop until u
if(low[u] == disc[u]) {
vector<int> comp;
while(true) {
int v = st.top(); st.pop();
onstack[v] = false;
comp.push_back(v);
if(v == u) break;
}
sccs.push_back(move(comp));
}
};
// Run Tarjan on every node
for(int i = 0; i < n; i++){
if(disc[i] == -1)
dfs(i);
}
// Compute answer: sum of min-costs, and product of counts
ll totalCost = 0;
ll ways = 1;
for(auto &comp : sccs){
ll mn = LLONG_MAX;
ll cnt = 0;
for(int u : comp){
if(cost[u] < mn){
mn = cost[u];
cnt = 1;
} else if(cost[u] == mn){
cnt++;
}
}
totalCost += mn;
ways = ways * cnt % MOD;
}
cout << totalCost << " " << ways << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwpjb25zdCBsbCBNT0QgPSAxMDAwMDAwMDA3OwoKaW50IG1haW4oKXsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIHZlY3RvcjxsbD4gY29zdChuKTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspewogICAgICAgIGNpbiA+PiBjb3N0W2ldOwogICAgfQoKICAgIGludCBtOwogICAgY2luID4+IG07CiAgICB2ZWN0b3I8dmVjdG9yPGludD4+IGFkaihuKTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBtOyBpKyspewogICAgICAgIGludCB1LCB2OwogICAgICAgIGNpbiA+PiB1ID4+IHY7CiAgICAgICAgLS11OyAtLXY7ICAgICAgICAgICAgICAgLy8gY29udmVydCB0byAwLWJhc2VkCiAgICAgICAgYWRqW3VdLnB1c2hfYmFjayh2KTsKICAgIH0KCiAgICAvLyBUYXJqYW7igJlzIFNDQyBnbG9iYWxzCiAgICB2ZWN0b3I8aW50PiBkaXNjKG4sIC0xKSwgbG93KG4sIDApOwogICAgdmVjdG9yPGJvb2w+IG9uc3RhY2sobiwgZmFsc2UpOwogICAgc3RhY2s8aW50PiBzdDsKICAgIGludCB0aW1lciA9IDA7CiAgICB2ZWN0b3I8dmVjdG9yPGludD4+IHNjY3M7CgogICAgLy8gVGFyamFu4oCZcyBERlMgKHJlY3Vyc2l2ZSkKICAgIGZ1bmN0aW9uPHZvaWQoaW50KT4gZGZzID0gWyZdKGludCB1KSB7CiAgICAgICAgZGlzY1t1XSA9IGxvd1t1XSA9IHRpbWVyKys7CiAgICAgICAgc3QucHVzaCh1KTsKICAgICAgICBvbnN0YWNrW3VdID0gdHJ1ZTsKCiAgICAgICAgZm9yKGludCB2IDogYWRqW3VdKXsKICAgICAgICAgICAgaWYoZGlzY1t2XSA9PSAtMSkgewogICAgICAgICAgICAgICAgZGZzKHYpOwogICAgICAgICAgICAgICAgbG93W3VdID0gbWluKGxvd1t1XSwgbG93W3ZdKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKG9uc3RhY2tbdl0pIHsKICAgICAgICAgICAgICAgIGxvd1t1XSA9IG1pbihsb3dbdV0sIGRpc2Nbdl0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBJZiB1IGlzIHJvb3Qgb2YgYW4gU0NDLCBwb3AgdW50aWwgdQogICAgICAgIGlmKGxvd1t1XSA9PSBkaXNjW3VdKSB7CiAgICAgICAgICAgIHZlY3RvcjxpbnQ+IGNvbXA7CiAgICAgICAgICAgIHdoaWxlKHRydWUpIHsKICAgICAgICAgICAgICAgIGludCB2ID0gc3QudG9wKCk7IHN0LnBvcCgpOwogICAgICAgICAgICAgICAgb25zdGFja1t2XSA9IGZhbHNlOwogICAgICAgICAgICAgICAgY29tcC5wdXNoX2JhY2sodik7CiAgICAgICAgICAgICAgICBpZih2ID09IHUpIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHNjY3MucHVzaF9iYWNrKG1vdmUoY29tcCkpOwogICAgICAgIH0KICAgIH07CgogICAgLy8gUnVuIFRhcmphbiBvbiBldmVyeSBub2RlCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKICAgICAgICBpZihkaXNjW2ldID09IC0xKQogICAgICAgICAgICBkZnMoaSk7CiAgICB9CgogICAgLy8gQ29tcHV0ZSBhbnN3ZXI6IHN1bSBvZiBtaW4tY29zdHMsIGFuZCBwcm9kdWN0IG9mIGNvdW50cwogICAgbGwgdG90YWxDb3N0ID0gMDsKICAgIGxsIHdheXMgICAgICA9IDE7CiAgICBmb3IoYXV0byAmY29tcCA6IHNjY3MpewogICAgICAgIGxsIG1uID0gTExPTkdfTUFYOwogICAgICAgIGxsIGNudCA9IDA7CiAgICAgICAgZm9yKGludCB1IDogY29tcCl7CiAgICAgICAgICAgIGlmKGNvc3RbdV0gPCBtbil7CiAgICAgICAgICAgICAgICBtbiA9IGNvc3RbdV07CiAgICAgICAgICAgICAgICBjbnQgPSAxOwogICAgICAgICAgICB9IGVsc2UgaWYoY29zdFt1XSA9PSBtbil7CiAgICAgICAgICAgICAgICBjbnQrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0b3RhbENvc3QgKz0gbW47CiAgICAgICAgd2F5cyA9IHdheXMgKiBjbnQgJSBNT0Q7CiAgICB9CgogICAgY291dCA8PCB0b3RhbENvc3QgPDwgIiAiIDw8IHdheXMgPDwgIlxuIjsKICAgIHJldHVybiAwOwp9Cg==