#include #include using namespace std; using ll = long long; int main() { ll n, s, t; cin >> n >> s >> t; atcoder::mf_graph mf(n + 2); while(s--) { ll e; cin >> e; mf.add_edge(n, e - 1, 1e18); } while(t--) { ll r; cin >> r; mf.add_edge(r - 1, n + 1, 1e18); } ll sum = 0; for (ll i = 0; i< n; i++) { for (ll j = 0; j< n; j++) { ll c; cin >> c; mf.add_edge(i, j, c); sum += c; } } cout << sum / 2 - mf.flow(n, n + 1); return 0; }