#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
cin >> n >> m;
unordered_map<int, vector<int>> rows, cols;
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
int x;
cin >> x;
rows[x].push_back(i);
cols[x].push_back(j);
}
}
long long ans = 0;
for(auto &[color, v] : rows) {
sort(v.begin(), v.end());
long long pref = 0;
for(int i = 0; i < (int)v.size(); i++) {
ans += 1LL * v[i] * i - pref;
pref += v[i];
}
}
for(auto &[color, v] : cols) {
sort(v.begin(), v.end());
long long pref = 0;
for(int i = 0; i < (int)v.size(); i++) {
ans += 1LL * v[i] * i - pref;
pref += v[i];
}
}
cout << ans << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwoKc2lnbmVkIG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKICAgIGludCBuLCBtOwogICAgY2luID4+IG4gPj4gbTsKCiAgICB1bm9yZGVyZWRfbWFwPGludCwgdmVjdG9yPGludD4+IHJvd3MsIGNvbHM7CgogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGZvcihpbnQgaiA9IDA7IGogPCBtOyBqKyspIHsKICAgICAgICAgICAgaW50IHg7CiAgICAgICAgICAgIGNpbiA+PiB4OwogICAgICAgICAgICByb3dzW3hdLnB1c2hfYmFjayhpKTsKICAgICAgICAgICAgY29sc1t4XS5wdXNoX2JhY2soaik7CiAgICAgICAgfQogICAgfQoKICAgIGxvbmcgbG9uZyBhbnMgPSAwOwoKICAgIGZvcihhdXRvICZbY29sb3IsIHZdIDogcm93cykgewogICAgICAgIHNvcnQodi5iZWdpbigpLCB2LmVuZCgpKTsKCiAgICAgICAgbG9uZyBsb25nIHByZWYgPSAwOwoKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgKGludCl2LnNpemUoKTsgaSsrKSB7CiAgICAgICAgICAgIGFucyArPSAxTEwgKiB2W2ldICogaSAtIHByZWY7CiAgICAgICAgICAgIHByZWYgKz0gdltpXTsKICAgICAgICB9CiAgICB9CgogICAgZm9yKGF1dG8gJltjb2xvciwgdl0gOiBjb2xzKSB7CiAgICAgICAgc29ydCh2LmJlZ2luKCksIHYuZW5kKCkpOwoKICAgICAgICBsb25nIGxvbmcgcHJlZiA9IDA7CgogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCAoaW50KXYuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgICAgYW5zICs9IDFMTCAqIHZbaV0gKiBpIC0gcHJlZjsKICAgICAgICAgICAgcHJlZiArPSB2W2ldOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IGFucyA8PCAnXG4nOwoKICAgIHJldHVybiAwOwp9