#include <fstream>
#include <algorithm>
#define INF 10001
using namespace std;
int N,S,K,C[22],L[22];
short t[102][1002],D[102][1002],i,j,sol[102],k;
ifstream fin("sant.in");
ofstream fout("sant.out");
int main(){
fin>>S>>N>>K;
for(int i=1;i<=K;i++)
fin>>L[i]>>C[i];
for(int i=1;i<=N;i++)
for(int j=1;j<=S;j++)
D[i][j]=INF;
for(int i=1;i<=K;i++)
if(C[i]<D[1][L[i]]){
D[1][L[i]]=C[i];
t[1][L[i]]=i;
}
for(int i=2;i<=N;i++)
for(int j=1;j<=S;j++)
for(int p=1;p<=K;p++)
if(j-L[p]>0)
if(D[i][j]>D[i-1][j-L[p]]+C[p]){
D[i][j]=D[i-1][j-L[p]]+C[p];
t[i][j]=p;
}
if(D[N][S]==INF){
fout<<0;
fin.close();fout.close();
return 0;
}
fout<<D[N][S]<<"\n";
int i=N,j=S;
while(i>=1){
sol[i]=t[i][j];
j-=L[t[i][j]];
i--;
}
sort(sol+1,sol+N+1);
for(int i=1;i<=N;i++)
fout<<sol[i]<<" ";
fin.close();fout.close();
return 0;
}