func_code_string: #include <bits/stdc++.h>   #pragma GCC optimize( Ofast,no-stack-protector,unroll-loops,fast-math )   #pragma GCC target(         sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tune=native )   using namespace std;   int n, m, k, ct[200010], cnt;   vector<pair<int, int> > e[200010];   vector<int> mp[200010];   char bf[100000], *p1 = bf, *p2 = bf;   inline int read() {     int x = 0;     char ch =         (p1 == p2 && (p2 = (p1 = bf) + fread(bf, 1, 100000, stdin), p2 == p1)              ? -1              : *p1++);     for (; ch <  0  || ch >  9 ;          ch =              (p1 == p2 && (p2 = (p1 = bf) + fread(bf, 1, 100000, stdin), p2 == p1)                   ? -1                   : *p1++))       ;     for (; ch <=  9  && ch >=  0 ;          x = x * 10 + ch - 48,          ch =              (p1 == p2 && (p2 = (p1 = bf) + fread(bf, 1, 100000, stdin), p2 == p1)                   ? -1                   : *p1++))       ;     return x;   }   int ans, O = 1;   int hah, val[10][200010];   void dfs(int x, int f) {     if (x == k + 1) {       if (f == hah) ++ans;       return;     }     if (mp[x].size() == 0) {       dfs(x + 1, f);       return;     }     for (auto i = (1); i <= (x); ++i) {       int flag = 1;       dfs(x + 1, f + val[x][i]);     }   }   int hsh[200010];   inline void solve() {     n = read(), m = read(), k = read();     for (auto i = (1); i <= (n); ++i) hsh[i] = rand(), hah += hsh[i];     for (auto i = (1); i <= (m); ++i) {       int u = read(), v = read(), w = read();       e[u].push_back({w, v});     }     for (auto i = (1); i <= (n); ++i) sort(e[i].begin(), e[i].end());     for (auto i = (1); i <= (n); ++i) mp[e[i].size()].push_back(i);     for (auto i = (1); i <= (k); ++i)       for (auto j = (1); j <= (i); ++j) {         val[i][j] = 0;         for (auto v : mp[i]) val[i][j] += hsh[e[v][j - 1].second];       }     for (auto i = (1); i <= (k); ++i)       if (mp[i].size() == 0) O *= i;     dfs(1, 0);     printf( %d n , ans * O);   }   int main() {     int T = 1;     while (T--) solve();   }   