#define __USE_MINGW_ANSI_STDIO
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
#include <unordered_set>
#include <unordered_map>
using namespace std;
typedef long long ll;
typedef long long ull;
typedef pair<ll, ll> ii;
#define all(v) ((v).begin()), ((v).end())
#define sz(v) ((int)((v).size()))
#define endl "\n"
#define fx(n) fixed<<setprecision(n)
#define mk make_pair
void fast()
{
ios::sync_with_stdio(NULL);
cout.tie(NULL);
cin.tie(NULL);
#ifndef ONLINE_JUDGE
freopen("output.out", "w", stdout);
freopen("input.in", "r", stdin);
#endif
/*#ifdef ONLINE_JUDGE
//freopen("output.txt", "w", stdout);
freopen("path.in", "r", stdin);
#endif*/
}
const double pi = 2 * acos(0.0);
const ll oo = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
const int nn = 1e5 + 15;
int dx[8] = { 1, -1, 0, 0, 1, -1, 1, -1 };
int dy[8] = { 0, 0, -1, 1, -1, 1, 1, -1 };
pair<ull, ull> arr[nn];
int main()
{
fast();
ull n, m;
cin >> n >> m;
ull res = 2 * (n*m);
for (int i = 0; i < n; i++)
cin >> arr[i].first >> arr[i].second;
// difference between rows
for (int i = 0; i < n; i++)
{
// add left side of first cell in each row
res += arr[i].first;
// add right side of last cell in each row
res += arr[i].first + (m - 1)*arr[i].second;
// add the difference between every two cells in row
res += (m - 1)*(arr[i].second);
}
// difference between cols
for (int i = 0; i < n - 1; i++)
{
res += m*abs((arr[i].first - arr[i + 1].first));
res += (((m - 1)*m) / 2)*abs((arr[i].second - arr[i + 1].second));
}
res += (m)*arr[0].first;
res += ((m*(m - 1)) / 2)*(arr[0].second);
res += (m)*arr[n-1].first;
res += ((m*(m - 1)) / 2)*(arr[n - 1].second);
cout << res << endl;
return 0;
}
I2RlZmluZSBfX1VTRV9NSU5HV19BTlNJX1NURElPCiNkZWZpbmUgX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0PgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiBsb25nIGxvbmcgdWxsOwp0eXBlZGVmIHBhaXI8bGwsIGxsPiBpaTsKCiNkZWZpbmUgYWxsKHYpCQkoKHYpLmJlZ2luKCkpLCAoKHYpLmVuZCgpKQojZGVmaW5lIHN6KHYpCQkoKGludCkoKHYpLnNpemUoKSkpCiNkZWZpbmUgZW5kbAkJIlxuIgojZGVmaW5lIGZ4KG4pCQlmaXhlZDw8c2V0cHJlY2lzaW9uKG4pCiNkZWZpbmUgbWsJCQltYWtlX3BhaXIJCgp2b2lkIGZhc3QoKQp7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbyhOVUxMKTsKCWNvdXQudGllKE5VTEwpOwoJY2luLnRpZShOVUxMKTsKI2lmbmRlZiBPTkxJTkVfSlVER0UKCWZyZW9wZW4oIm91dHB1dC5vdXQiLCAidyIsIHN0ZG91dCk7CglmcmVvcGVuKCJpbnB1dC5pbiIsICJyIiwgc3RkaW4pOwojZW5kaWYKCS8qI2lmZGVmIE9OTElORV9KVURHRQoJLy9mcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwoJZnJlb3BlbigicGF0aC5pbiIsICJyIiwgc3RkaW4pOwoJI2VuZGlmKi8KfQpjb25zdCBkb3VibGUgcGkgPSAyICogYWNvcygwLjApOwpjb25zdCBsbCBvbyA9IDB4M2YzZjNmM2Y7CmNvbnN0IGludCBNT0QgPSAxZTkgKyA3Owpjb25zdCBpbnQgbm4gPSAxZTUgKyAxNTsKaW50IGR4WzhdID0geyAxLCAtMSwgMCwgMCwgMSwgLTEsIDEsIC0xIH07CmludCBkeVs4XSA9IHsgMCwgMCwgLTEsIDEsIC0xLCAxLCAxLCAtMSB9OwoKcGFpcjx1bGwsIHVsbD4gYXJyW25uXTsKaW50IG1haW4oKQp7CglmYXN0KCk7Cgl1bGwgbiwgbTsKCWNpbiA+PiBuID4+IG07Cgl1bGwgcmVzID0gMiAqIChuKm0pOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCgkJY2luID4+IGFycltpXS5maXJzdCA+PiBhcnJbaV0uc2Vjb25kOwoJLy8gZGlmZmVyZW5jZSBiZXR3ZWVuIHJvd3MKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQoJewoJCS8vIGFkZCBsZWZ0IHNpZGUgb2YgZmlyc3QgY2VsbCBpbiBlYWNoIHJvdwoJCXJlcyArPSBhcnJbaV0uZmlyc3Q7CgkJLy8gYWRkIHJpZ2h0IHNpZGUgb2YgbGFzdCBjZWxsIGluIGVhY2ggcm93CgkJcmVzICs9IGFycltpXS5maXJzdCArIChtIC0gMSkqYXJyW2ldLnNlY29uZDsKCQkvLyBhZGQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBldmVyeSB0d28gY2VsbHMgaW4gcm93CgkJcmVzICs9IChtIC0gMSkqKGFycltpXS5zZWNvbmQpOwoJfQoJLy8gZGlmZmVyZW5jZSBiZXR3ZWVuIGNvbHMKCWZvciAoaW50IGkgPSAwOyBpIDwgbiAtIDE7IGkrKykKCXsKCQlyZXMgKz0gbSphYnMoKGFycltpXS5maXJzdCAtIGFycltpICsgMV0uZmlyc3QpKTsKCQlyZXMgKz0gKCgobSAtIDEpKm0pIC8gMikqYWJzKChhcnJbaV0uc2Vjb25kIC0gYXJyW2kgKyAxXS5zZWNvbmQpKTsKCX0KCXJlcyArPSAobSkqYXJyWzBdLmZpcnN0OwoJcmVzICs9ICgobSoobSAtIDEpKSAvIDIpKihhcnJbMF0uc2Vjb25kKTsKCXJlcyArPSAobSkqYXJyW24tMV0uZmlyc3Q7CglyZXMgKz0gKChtKihtIC0gMSkpIC8gMikqKGFycltuIC0gMV0uc2Vjb25kKTsKCWNvdXQgPDwgcmVzIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==