#include <iostream>
using namespace std;

int main()
{
	long long iNumA, iNumB, iGCD, iLCM, iGCDTemp, iGCDTempL, iLCMTempA[256], iLCMTempB[256], iCount, i, j, k;
	bool      TrueFlag;

	while( cin >> iNumA >> iNumB ){

		iGCDTempL = 0;
		iGCDTemp  = iNumB;

		while( iGCDTemp != 0 ){

			iGCDTempL = iGCDTemp;
			iGCDTemp  = iNumA % iGCDTemp;

		}

		iGCD     = iGCDTempL;
		iCount   = 1;
		i	     = 1;
		TrueFlag = false;

		while( 1 ){

			while( iCount % 11 != 0 ){

				iLCMTempA[iCount-1] = iNumA * i;
				iLCMTempB[iCount-1] = iNumB * i;
				iCount++;
				i++;

			}

			for( j = iCount - 10; j < iCount; j++ ){

				for( k = j; k < iCount; k++ ){

					if( iLCMTempA[j] == iLCMTempB[k] ){
						iLCM = iLCMTempA[j];
						TrueFlag = true;
						break;
					}

				}

				if( TrueFlag == true ) break;

			}

			if( TrueFlag == true ) break;

		}

		cout << iGCD << ' ' << iLCM << endl;

	}

	return 0;
}