#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5 + 5;
const int INF = 1e18;
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int k, n, tot = 0;
cin >> k >> n;
set < int > st;
vector < int > L, R, prL, prR;
L = R = prL = prR = {0};
vector < array < int , 2 > > v;
for(int i = 0; i < n; i++){
char ty1, ty2;
int cor1, cor2;
cin >> ty1 >> cor1 >> ty2 >> cor2;
if(cor1 > cor2)
swap(cor1, cor2);
st.insert(cor1);
st.insert(cor2);
if(ty1 == ty2){
tot += abs(cor1 - cor2);
}
else {
L.push_back(cor1);
R.push_back(cor2);
v.push_back({cor1, cor2});
}
}
sort(L.begin(), L.end());
sort(R.begin(), R.end());
for(int i : L){
prL.push_back(i);
}
for(int i : R){
prR.push_back(i);
}
for(int i = 1; i < prL.size(); i++)prL[i] += prL[i - 1];
for(int i = 1; i < prR.size(); i++)prR[i] += prR[i - 1];
int mn = INF;
for(auto d : st){
int cur = tot + v.size();
int lo = 0, hi = L.size() - 1;
int id1 = -1, id2 = -1;
while(hi >= lo){
int mid = (lo + hi) >> 1;
if(L[mid] <= d){
id1 = mid;
lo = mid + 1;
}
else hi = mid - 1;
}
lo = 0, hi = R.size() - 1;
while(hi >= lo){
int mid = (lo + hi) >> 1;
if(R[mid] <= d){
id2 = mid;
lo = mid + 1;
}
else hi = mid - 1;
}
id1++, id2++;
cur += (id1 * d - prL[id1]) + (prL.back() - prL[id1] - (prL.size() - id1) * d);
cur += (id2 * d - prR[id2]) + (prR.back() - prR[id2] - (prR.size() - id2) * d);
mn = min(mn, cur);
}
cout << mn << endl;
}