#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
signed main()
{
ios::sync_with_stdio(0);
cin.tie(NULL), cout.tie(NULL);
int m,n;
cin>>m>>n;
vector<array<int,3>> v,sub;
for (int i=0;i<n;i++)
{
int x,y;
cin>>x>>y;y=min(y,m);
v.push_back({x,y,i+1});
}
sort(v.rbegin(),v.rend());
int ans=0, su=0;
vector<pair<int,int>> v2;
for (auto e:v)
{
int mn=min(e[1],6*m-su);
ans+=mn*e[0];
if (!mn) break;
v2.push_back({mn,e[2]});
su+=mn;
}
sort(v2.begin(),v2.end());
vector<pair<int,int>> v1[6];
for (int j=0;j<6;j++)
{
su=0;
while (su<m)
{
pair<int,int> p=v2.back();
int mn=min(p.second,m-su);
v1[j].push_back({p.first,mn});
su+=mn;
v2.back().second-=mn;
if (!v2.back().second) v2.pop_back();
}
}
cout<<ans<<endl;
for (int j=0;j<6;j++)
cout<<v1[j][0].first<<' ';
cout<<endl;
for (int j=0;j<6;j++)
{
int su=v1[j][0].second;
for (int i=1;i<v1[j].size();i++)
sub.push_back({su,v1[j][i-1].first,v1[j][i].first}), su+=v1[j][i].second;
}
sort(sub.begin(),sub.end());
cout<<sub.size()<<endl;
for (auto e:sub)
cout<<e[0]<<' '<<e[1]<<' '<<e[2]<<endl;
return 0;
}