func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 100010;   int Begin[N], Next[N], to[N], cost[N], e;   void Add(int u, int v, int w) {     to[++e] = v, Next[e] = Begin[u], Begin[u] = e, cost[e] = w;   }   int n, m;   long long dis[N];   bool vis[N];   struct Vertex {     int o;     long long d;     bool operator<(const Vertex& A) const { return d > A.d; }   };   void Dijkstra() {     priority_queue<Vertex> q;     memset(dis, 0x3f, sizeof dis);     q.push((Vertex){1, 0}), dis[1] = 0;     while (!q.empty()) {       Vertex v = q.top();       q.pop();       int o = v.o;       if (vis[o]) continue;       vis[o] = true;       for (int i = Begin[o]; i; i = Next[i]) {         int u = to[i];         if (dis[u] > dis[o] + cost[i]) {           dis[u] = dis[o] + cost[i];           q.push((Vertex){u, dis[u]});         }       }     }   }   int delt[N];   queue<int> que[N];   void Work(int s) {     for (int i = 1; i <= n; i++) delt[i] = 1e9, vis[i] = false;     que[0].push(1), delt[1] = 0;     for (int i = 0; i <= s; i++)       while (!que[i].empty()) {         int o = que[i].front();         que[i].pop();         if (vis[o]) continue;         vis[o] = true;         for (int j = Begin[o]; j; j = Next[j]) {           int u = to[j];           int new_delt = dis[o] + delt[o] + cost[j] - dis[u];           if (delt[u] > new_delt) {             delt[u] = new_delt;             if (delt[u] <= s) que[delt[u]].push(u);           }         }       }     for (int i = 1; i <= n; i++) dis[i] += delt[i];   };   int q;   int main() {     scanf( %d%d%d , &n, &m, &q);     for (int i = 1; i <= m; i++) {       int u, v, c;       scanf( %d%d%d , &u, &v, &c);       Add(u, v, c);     }     Dijkstra();     while (q--) {       int ty, s;       scanf( %d%d , &ty, &s);       if (ty == 1)         printf( %I64d n , dis[s] > 1e17 ? -1 : dis[s]);       else {         for (int i = 1; i <= s; i++) {           int u;           scanf( %d , &u);           ++cost[u];         }         Work(min(s, n));       }     }     return 0;   }   