#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5+5;
int lsum,rsum,pref[N];
priority_queue <int> lpq;
priority_queue <int,vector <int>,greater <int>> rpq;
bool cmp(pair <int,int> x,pair <int,int> y){
return x.first+x.second<y.first+y.second;
}
void insert(int x){
int median=(lpq.size()?lpq.top():1000000001);
if(x<=median){
lpq.push(x);
lsum+=x;
}
else{
rpq.push(x);
rsum+=x;
}
if(rpq.size()+1<lpq.size()){
int nxt=lpq.top();
lpq.pop();
rpq.push(nxt);
lsum-=nxt;
rsum+=nxt;
}
else if(lpq.size()<rpq.size()){
int nxt=rpq.top();
rpq.pop();
lpq.push(nxt);
rsum-=nxt;
lsum+=nxt;
}
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int k,n,sum_side=0;
vector <pair <int,int>> v={{0,0}};
cin >> k >> n;
for(int i=0;i<n;i++){
char a,b;
int x,y;
cin >> a >> x >> b >> y;
if(a==b) sum_side+=abs(x-y);
else v.push_back({x,y});
}
sort(v.begin(),v.end(),cmp);
n=v.size()-1;
sum_side+=n;
lsum=rsum=0;
for(int i=1;i<=n;i++){
insert(v[i].first);
insert(v[i].second);
pref[i]=rsum-lsum;
}
int ans=pref[n];
if(k==2){
while(!lpq.empty()) lpq.pop();
while(!rpq.empty()) rpq.pop();
lsum=rsum=0;
for(int i=n;i>0;i--){
insert(v[i].first);
insert(v[i].second);
ans=min(ans,rsum-lsum+pref[i-1]);
}
}
cout << sum_side+ans;
}