#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5;
int pos[12][maxn], ori[12][maxn];
int n, m;
long long ans[maxn];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> m;
  for (int i = 1; i <= m; i++) {
    for (int j = 1; j <= n; j++) {
      cin >> ori[i][j];
      pos[i][ori[i][j]] = j;
    }
  }
  int v1, vm, lm, flag;
  for (int i = 1; i <= n; i++) {
    ans[i] = max(ans[i - 1] - 1, 1LL);
    while (1) {
      flag = 0;
      if (i + ans[i] > n) break;
      v1 = ori[1][i];
      for (int j = 2; j <= m; j++) {
        lm = pos[j][v1];
        if (lm + ans[i] > n || ori[j][lm + ans[i]] != ori[1][i + ans[i]]) {
          flag = 1;
          break;
        }
      }
      if (flag) break;
      ans[i]++;
    }
  }
  long long res = 0;
  for (int i = 1; i <= n; i++) res += ans[i];
  cout << res;
  return 0;
}
