#include <iostream>
#include <vector>
#include <string>
#include <cstring>
#include <algorithm>
#include <sstream>
#include <map>
#include <set>

#define REP(i,k,n) for(int i=k;i<n;i++)
#define rep(i,n) for(int i=0;i<n;i++)
#define INF 1<<30
#define pb push_back
#define mp make_pair

using namespace std;
typedef long long ll;
typedef pair<int,int> P;

int main() {
	int n, h;
	while(cin >> n >> h) {
		if(n == 0 && h == 0) break;

		set<pair<pair<int,int>, int> > st;
		rep(i, h) {
			string s;
			int a, b;
			cin >> s >> a >> b;

			if(s == "xy") {
				rep(i,n) {
					st.insert(mp(mp(a,b),i+1));
				}
			} else if(s == "xz") {
				rep(i,n) {
					st.insert(mp(mp(a,i+1),b));
				}
			} else if(s == "yz") {
				rep(i,n) {
					st.insert(mp(mp(i+1,a),b));
				}
			}
		}

		cout << n * n * n - st.size() << endl;
	}

	return 0;
}