#include <iostream>
#include <vector>

using namespace std;

void solve() {
    int n;
    cin >> n;

    vector<pair<int, int>> ps(n);
    for (auto& [l, r] : ps) {
        int t;
        cin >> t >> l >> r;
        l *= 2, r *= 2;
        if (t > 2) ++l;
        if (t % 2) ++r;
    }

    int ans = 0;
    for (int i = 0; i < n; ++i) {
        auto [li, ri] = ps[i];
        for (int j = 0; j < i; ++j) {
            auto [lj, rj] = ps[j];

            if (max(li, lj) < min(ri, rj)) ++ans;
        }
    }

    cout << ans << "\n";
}

int main() {
    cin.tie(nullptr);
    ios::sync_with_stdio(false);

    solve();

    return 0;
}

//Codeforcesで128bit整数を使いたいとき
//→__int128_tを使う&GNU C++17 (64)で提出する

//インクルードなど
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

//イテレーション
#define REP(i,n) for(ll i=0;i<ll(n);i++)
#define REPD(i,n) for(ll i=n-1;i>=0;i--)
#define FOR(i,a,b) for(ll i=a;i<=ll(b);i++)
#define FORD(i,a,b) for(ll i=a;i>=ll(b);i--)
#define FORA(i,I) for(const auto& i:I)
//x:コンテナ
#define ALL(x) x.begin(),x.end() 
#define SIZE(x) ll(x.size()) 
//定数
#define INF32 2147483647 //2.147483647×10^{9}:32bit整数のinf
#define INF64 9223372036854775807 //9.223372036854775807×10^{18}:64bit整数のinf
#define MOD 1000000007 //問題による
//略記
#define F first
#define S second
//出力(空白区切りで昇順に)
#define coutALL(x) for(auto i=x.begin();i!=--x.end();i++)cout<<*i<<" ";cout<<*--x.end()<<endl;

//aをbで割る時の繰上げ,繰り下げ
ll myceil(ll a,ll b){return (a+(b-1))/b;}
ll myfloor(ll a,ll b){return a/b;}
signed main(){
	ll N;

	cin >> N;

	vector<vector<ll>> trl(N,vector<ll>(3,0));

	for (ll i=0;i<N;i++){
		cin >> trl[i][0] >> trl[i][1] >> trl[i][2];
	}
	sort(trl.begin(),trl.end(),[](const vector<ll> &alpha,const vector<ll> &beta){return alpha[1] < beta[1];});

	ll ans=0;
	for (ll i=0;i<N;i++){
		for (ll j=i+1;j<N;j++){
			if(trl[i][2] > trl[j][1]) ans++;
			else if (trl[i][2] == trl[j][1]) {
				if (trl[i][0] == 1 || trl[i][0] == 3)
					if (trl[j][0] == 1 || trl[j][0] == 2) ans++;
			}
			else break;
		}
	}
	cout << ans << endl;
}
