#include <fstream>
#include <cstring>
#include <map>
using namespace std;
typedef long long ll;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
map<string,pair<ll,ll>> M;
int main()
{
    int c  , d;
    cin >> c >> d; cin.get();
    for(int i = 1;i<=d;i++)
    {
        string datorie;
        getline(cin,datorie);
        int p1 = datorie.length() - 1,p2;
        bool spatiu = false;
        while(datorie[p1] != '>')
        {
            if(isdigit(datorie[p1]) && !spatiu)
                p2=p1;
            if(datorie[p1] == ' ' )
                spatiu = true;
            p1--;
        }
        int suma = 0;
        for(int it = p2;it<datorie.length();it++)
            suma = suma * 10 + (datorie[it] - '0');
        string dator = datorie.substr(0,p1-1);
        string primitor = datorie.substr(p1 + 2, p2 - (p1 + 3));
        M[dator].first += suma;
        M[primitor].second += suma;
    }
    if(c==1)
        cout << M.size() << '\n';
    if(c==2)
        for(auto it : M)
            cout << it.first << ' ' << it.second.first << ' ' << it.second.second << '\n';
    return 0;
}
