#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int value[104];
vector<int> vb[104];
int visit[104];
queue<int> ue;
int learned;
int _next;
int findAns(int a)
{
int _max=0;
if(vb[a].size()==0)
{
_next=a;
//learned+=value[a];
return 0;
}
else
{
for(int i=0;i<vb[a].size();i++)
{
if(value[i]]>_max)
{
_max=value[i]];
_next=vb[a][i];
}
}
learned+=_max;
return findAns(_next);
}
return 0;
}
int main()
{
int t,n,m;
int a,b,c=1;
cin>>t;
while(t--)
{
cin>>n>>m;
for(int i=0;i<n;i++)
{
cin>>value[i];
vb[i].clear();
visit[i]=0;
}
for(int i=0;i<m;i++)
{
cin>>a>>b;
vb[a].push_back(b);
}
learned=0;
learned+=value[0];
findAns(0);
cout<<"Case "<<c++<<": ";
cout<<learned<<" "<<_next<<"\n";
}
return 0;
}