func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAXN = 202020, INF = 0x3f3f3f3f;   vector<int> G[MAXN], iG[MAXN];   int n, m, k, p[MAXN];   int main() {     scanf( %d%d , &n, &m);     for (int i = 1; i <= m; ++i) {       static int u, v;       scanf( %d%d , &u, &v);       G[u].push_back(v);       iG[v].push_back(u);     }     scanf( %d , &k);     for (int i = 1; i <= k; ++i) scanf( %d , &p[i]);     vector<int> d(MAXN, INF);     queue<int> q;     q.push(p[k]), d[p[k]] = 0;     while (!q.empty()) {       int f = q.front();       q.pop();       for (auto g : iG[f])         if (d[g] == INF) {           d[g] = d[f] + 1;           q.push(g);         }     }     int mn = 0, mx = 0;     for (int i = 1; i < k; ++i) {       if (d[p[i]] <= d[p[i + 1]])         mn++, mx++;       else {         int deg = 0;         for (auto g : G[p[i]])           if (d[g] == d[p[i]] - 1) deg++;         mx += deg > 1;       }     }     printf( %d %d n , mn, mx);     return 0;   }   