#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define ff first
#define ss second
#define pi pair<int,int>
priority_queue<int> lpq;
priority_queue<int,vector<int>,greater<>> rpq;
int ls = 0, rs = 0;
bool cp(pi a, pi b){
return a.ff + a.ss < b.ff + b.ss;
}
void insert(int x){
int med = (lpq.size() ? lpq.top() : 1000000001);
if(x <= med){
lpq.push(x);
ls += x;
}
else{
rpq.push(x);
rs += x;
}
if(lpq.size() < rpq.size()){
int nx = rpq.top();
rpq.pop();
rs -= nx;
ls += nx;
lpq.push(nx);
}
else if(rpq.size() + 1 < lpq.size()){
int nx = lpq.top();
lpq.pop();
ls -= nx;
rs += nx;
rpq.push(nx);
}
}
signed main(){
cin.tie(0)->sync_with_stdio(0);
int k, n; cin >> k >> n;
int s = 0, same = 0;
vector<pi> v;
for(int i=0; i< n; i ++){
char q,w; int e, r; cin >> q >> e >> w >> r;
if(q == w){
same += abs(r-e);
}
else{
v.pb({e,r});
}
}
sort(v.begin(),v.end(), cp);
n = v.size();
same += n;
vector<int> pr(n+1,0);
for(int i=0; i < n; i ++){
insert(v[i].ff);
insert(v[i].ss);
pr[i+1] = (rs - ls);
}
int ans = pr[n];
if(k == 2){
while(lpq.size()) lpq.pop();
while(rpq.size()) rpq.pop();
ls = rs = 0;
for(int i=n-1; i >= 0; i --){
insert(v[i].ff);
insert(v[i].ss);
ans = min(ans, rs - ls + pr[i]);
}
}
cout << same + ans;
}
/*
0 4
1 7
2 6
5 7
lpq : 4 2 1 0
rpq : 5 6 7 7
pref: 4
*/