#include <bits/stdc++.h>
using namespace std;
#define int long long
inline void solve()
{
int n,m;
cin>>m>>n;
vector<vector<int>>a;
for (int i=0;i<n;i++)
{
int qu,in;
cin>>qu>>in;
in=min(in,m);
a.push_back({qu,in,i});
}
sort(begin(a),end(a));
reverse(begin(a),end(a));
int ans=0;
int req=m*6;
vector<vector<int>>pls;
for (auto vec:a)
{
int qu=vec[0],in=vec[1],ind=vec[2];
int f=min(req,in);
ans+=(f*qu);
pls.push_back({f,ind});
req-=f;
if (req==0)
break;
}
int mx[6]={};
int pr[6]={};
for (int i=0;i<6;i++)
pr[i]=-1;
vector<int>pre;
vector<vector<int>>subs;
for (auto vec:pls)
{
int tm=vec[0],ind=vec[1];
int ins=0;
for (int j=1;j<6;j++)
if (mx[ins]>mx[j])
ins=j;
if (mx[ins]==0)
pre.push_back(ind+1);
else
subs.push_back({mx[ins],pr[ins]+1,ind+1});
pr[ins]=ind;
mx[ins]+=tm;
}
cout<<ans<<endl;
for (auto i:pre)
cout<<i<<' ';
cout<<endl;
cout<<subs.size()<<endl;
for (auto vec:subs)
{
for (auto j:vec)
cout<<j<<' ';
cout<<endl;
}
}
signed main()
{
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
int t=1;
for (int i=1;i<=t;i++)
{
solve();
}
}