#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pi = pair<int, int>;
using vi = vector<int>;
using mi = map<int, int>;
using pqi = priority_queue<int>;
#define rep(i, a, b) for (int i = (a); i < (b); i++)
#define repe(i, a, b) for (int i = (a); i <= (b); i++)
#define debug(elem) cerr << #elem << " = " << elem << "\n"
#define all(a) a.begin(), a.end()
#define sz(a) (int)a.size()
#define pb push_back
template <typename T> void read(T &a) {cin >> a; return;}
template <typename A, typename B> void read(pair<A, B> &p) {cin >> p.first >> p.second; return;}
template <typename T> void read(vector<T> &v) {for (auto &a : v) {read(a);} return;}
template <typename A, typename... B> void read(A &a, B &...b) {read(a); (read(b), ...);}
/*
Just fixing my ways.
*/
void solve(int TC) {
#ifdef LOCAL
debug(TC);
#endif
int n, m;
read(n, m);
vector<vector<ll>> a(n, vector<ll>(m));
rep(i, 0, n) {
read(a[i]);
}
sort(all(a), [](const vector<ll> &a, const vector<ll> &b) {
return accumulate(all(a), 0LL) > accumulate(all(b), 0LL);
});
ll ans = 0;
ll cur = 0;
rep(i, 0, n) {
rep(j, 0, m) {
cur += a[i][j];
ans += cur;
}
}
cout << ans << "\n";
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int t;
cin >> t;
repe(i, 1, t) {
solve(i);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKdXNpbmcgbGwgPSBsb25nIGxvbmc7CnVzaW5nIHBpID0gcGFpcjxpbnQsIGludD47CnVzaW5nIHZpID0gdmVjdG9yPGludD47CnVzaW5nIG1pID0gbWFwPGludCwgaW50PjsKdXNpbmcgcHFpID0gcHJpb3JpdHlfcXVldWU8aW50PjsKI2RlZmluZSByZXAoaSwgYSwgYikgZm9yIChpbnQgaSA9IChhKTsgaSA8IChiKTsgaSsrKQojZGVmaW5lIHJlcGUoaSwgYSwgYikgZm9yIChpbnQgaSA9IChhKTsgaSA8PSAoYik7IGkrKykKI2RlZmluZSBkZWJ1ZyhlbGVtKSBjZXJyIDw8ICNlbGVtIDw8ICIgPSAiIDw8IGVsZW0gPDwgIlxuIgojZGVmaW5lIGFsbChhKSBhLmJlZ2luKCksIGEuZW5kKCkKI2RlZmluZSBzeihhKSAoaW50KWEuc2l6ZSgpCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiAKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgcmVhZChUICZhKSB7Y2luID4+IGE7IHJldHVybjt9CnRlbXBsYXRlIDx0eXBlbmFtZSBBLCB0eXBlbmFtZSBCPiB2b2lkIHJlYWQocGFpcjxBLCBCPiAmcCkge2NpbiA+PiBwLmZpcnN0ID4+IHAuc2Vjb25kOyByZXR1cm47fQp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCByZWFkKHZlY3RvcjxUPiAmdikge2ZvciAoYXV0byAmYSA6IHYpIHtyZWFkKGEpO30gcmV0dXJuO30KdGVtcGxhdGUgPHR5cGVuYW1lIEEsIHR5cGVuYW1lLi4uIEI+IHZvaWQgcmVhZChBICZhLCBCICYuLi5iKSB7cmVhZChhKTsgKHJlYWQoYiksIC4uLik7fQoKLyoKSnVzdCBmaXhpbmcgbXkgd2F5cy4KKi8KCnZvaWQgc29sdmUoaW50IFRDKSB7CiAgICAjaWZkZWYgTE9DQUwKICAgIGRlYnVnKFRDKTsKICAgICNlbmRpZgoKICAgIGludCBuLCBtOwogICAgcmVhZChuLCBtKTsKICAgIHZlY3Rvcjx2ZWN0b3I8bGw+PiBhKG4sIHZlY3RvcjxsbD4obSkpOwoKICAgIHJlcChpLCAwLCBuKSB7CiAgICAgICAgcmVhZChhW2ldKTsKICAgIH0KCiAgICBzb3J0KGFsbChhKSwgW10oY29uc3QgdmVjdG9yPGxsPiAmYSwgY29uc3QgdmVjdG9yPGxsPiAmYikgewogICAgICAgIHJldHVybiBhY2N1bXVsYXRlKGFsbChhKSwgMExMKSA+IGFjY3VtdWxhdGUoYWxsKGIpLCAwTEwpOwogICAgfSk7CgogICAgbGwgYW5zID0gMDsKICAgIGxsIGN1ciA9IDA7CiAgICByZXAoaSwgMCwgbikgewogICAgICAgIHJlcChqLCAwLCBtKSB7CiAgICAgICAgICAgIGN1ciArPSBhW2ldW2pdOwogICAgICAgICAgICBhbnMgKz0gY3VyOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IGFucyA8PCAiXG4iOwp9CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKCiAgICBpbnQgdDsKICAgIGNpbiA+PiB0OwoKICAgIHJlcGUoaSwgMSwgdCkgewogICAgICAgIHNvbHZlKGkpOwogICAgfQoKICAgIHJldHVybiAwOwp9