#include <stdio.h>

FILE *in;
int m, n, k;

int p[200], maxp=0;
int f[200][2];
int sx[200];
int fx[200][2][200];

void pn(int* n)
{
	for(int i=0; i<maxp; i++)
		for(int j=0; j<n[i]; j++)
			printf("%d ", p[i]);
	printf("\n");
}

int main()
{
	in=stdin;
	for(int i=2; i<=1000; i++)
		{
			for(int j=2; j<i; j++)
				if (!(i%j))
					goto weiter1;
			p[maxp++]=i;
		weiter1:;
		}
	while(1)
		{
			fscanf(in, " %d ", &m);
			if (!m) break;
			fscanf(in, " %d %d ", &n, &k);
			for(int i=0; i<maxp; i++) sx[i]=0;
			while(n>1)
				for(int i=0; i<maxp; i++)
					if (!(n%p[i]))
						{
							sx[i]++;
							n=n/p[i];
							break;
						}
			for(int ii=0; ii<k; ii++)
				{
					fscanf(in, " %d %d ", &f[ii][0], &f[ii][1]);
					for(int i=0; i<maxp; i++) fx[ii][0][i]=0;
					while(f[ii][0]>1)
						for(int i=0; i<maxp; i++)
							if (!(f[ii][0]%p[i]))
								{
									fx[ii][0][i]++;
									f[ii][0]=f[ii][0]/p[i];
									break;
								}
					for(int i=0; i<maxp; i++) fx[ii][1][i]=0;
					while(f[ii][1]>1)
						for(int i=0; i<maxp; i++)
							if (!(f[ii][1]%p[i]))
								{
									fx[ii][1][i]++;
									f[ii][1]=f[ii][1]/p[i];
									break;
								}
				}
			int z=0;
			while(z<m)
				{
					//			pn(sx);
					for(int i=1; i<maxp; i++)
						if (sx[i])  goto weitery;
					if (z)
						printf(" %d", sx[0]);							
					else
						printf("%d", sx[0]);							
					z++;
				weitery:;
					int x=0;
					for(x=0; x<=k; x++)
						{
							for(int i=0; i<maxp; i++)
								if (sx[i]<fx[x][1][i]) goto weiter3;
							break;
						weiter3:;
						}
					if (x==k) goto weiter2;
					for(int i=0; i<maxp; i++)
						sx[i]+=fx[x][0][i]-fx[x][1][i];
				}	
		weiter2:;
			printf("\n");
		}
}
