// 2011/08/09 Tazoe

#include <iostream>
using namespace std;

long long GCD(long long m, long long n)
{
	if(n>m){
		long long tmp = m;
		m = n;
		n = tmp;
	}

	if(n==0)
		return m;

	while(true){
		if(m%n==0)
			return n;

		long long tmp = m%n;
		m = n;
		n = tmp;
	}
}

long long LCM(long long m, long long n)
{
	return (m/GCD(m, n))*n;
}

int main()
{
	while(true){
		int n;
		cin >> n;
		if(n==0)
			break;

		long long d[10], v[10];
		for(int i=0; i<n; i++)
			cin >> d[i] >> v[i];

		// v/dªüñ^ÔÆÈé

		// ñª
		for(int i=0; i<n; i++){
			long long gcd = GCD(d[i], v[i]);
			d[i] /= gcd;
			v[i] /= gcd;
		}

		// dÌÅ¬ö{
		long long D = LCM(d[0], d[1]);
		for(int i=2; i<n; i++)
			D = LCM(D, d[i]);

		// üñÌ®»
		long long r[10];
		for(int i=0; i<n; i++)
			r[i] = v[i]*(D/d[i]);

		// rÌÅåöñ
		long long R = GCD(r[0], r[1]);
		for(int i=2; i<n; i++)
			R = GCD(R, r[i]);

		for(int i=0; i<n; i++)
			cout << r[i]/R << endl;
	}

	return 0;
}