#include<bits/stdc++.h>
#define aa first
#define bb second
using namespace std;
const int N=1000005;
typedef long long ll;
ll n,m,k,t,x[100005],a,b,c,d,h;
ll Max(ll a,ll b) {return a>b?a:b;}
ll Min(ll a,ll b) {return a<b?a:b;}
vector < pair<ll,ll> > r[N];
map<pair<ll,ll>,ll> mp;
vector<pair<ll,ll>> up[N];
ll f[N];
int main()
{
cin>>t;
while(t--)
{
cin>>n>>m>>k;
int cnt=0;
mp.clear();
for(int i=1;i<=n;++i)
{
cin>>x[i];
r[i].clear();
}
for(int i=1;i<=k;++i)
{
cin>>a>>b>>c>>d>>h;
pair<ll,ll>s=make_pair(a,b),t=make_pair(c,d);
if(mp.find(s)==mp.end())
mp[s]=++cnt,r[a].push_back(make_pair(b,cnt));
if(mp.find(t)==mp.end())
mp[t]=++cnt,r[c].push_back(make_pair(d,cnt));
up[mp[s]].push_back(make_pair(mp[t],h));
}
for(int i=1;i<=cnt;++i)
f[i]=1ll<<60ll;
for(auto i:r[1])
{
f[i.bb]=1ll*(i.aa-1)*x[1];
}
for(int i=1;i<=n;++i)
{
if(r[i].size())
{
ll M=1ll<<61ll;
ll kk=r[i].size();
sort(r[i].begin(),r[i].end());
for(int j=0;j<kk;++j)
{
M=Min(M,f[r[i][j].bb]-x[i]*r[i][j].aa);
f[r[i][j].bb]=Min(f[r[i][j].bb],M+x[i]*r[i][j].aa);
}
M=1ll<<61ll;
for(int j=kk-1;j>=0;--j)
{
M=Min(M,f[r[i][j].bb]+x[i]*r[i][j].aa);
f[r[i][j].bb]=Min(f[r[i][j].bb],M-x[i]*r[i][j].aa);
}
for(int j=0;j<kk;++j)
{
if(f[r[i][j].bb]< 1ll<<60ll)
{
for(auto p : up[r[i][j].bb])
{
f[p.aa]=Min(f[p.aa],f[r[i][j].bb]-p.bb);
}
}
}
}
}
ll ans=1ll << 60ll;
for(auto i:r[n])
{
ans=Min(f[i.bb]+(m-i.aa)*x[n],ans);
}
if(ans< 1ll << 60ll)
{
cout<<ans<<"\n";
}
else puts("NO ESCAPE");
for(int i=1;i<=cnt;++i)
up[i].clear();
}
return 0;
}