#include <cstdio>
#include <map>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
bool can_divide(int a)
{
	while(a%2==0)a/=2;
	while(a%5==0)a/=5;
	return a==1;
}
string divide(int a,int b)
{
	a*=10;
	string ret;
	while(a!=0)
	{
		ret+=a/b+'0';
		a%=b;
		a*=10;
	}
	return ret;
}
void solve(int a,int b)
{
	string ret;
	map<int,int> m;
	a*=10;
	int p=-1;
	for(int i=0;;i++)
	{
		if(m.find(a)!=m.end())
		{
			p=m[a];
			break;
		}
		m[a]=i;
		ret+=a/b+'0';
		a%=b;
		a*=10;
	}
	cout << ret << endl;
	for(int i=0;i<ret.size();i++)
	{
		if(i>=p)cout << '^';
		else cout << ' ';
	}
	cout << endl;
	return;
}
		
int main()
{
	int a,b;
	while(cin >> a >> b)
	{
		int g = __gcd(a,b);
		a/=g;b/=g;
		if(can_divide(b))
		{
			cout << divide(a,b) << endl;
		}
		else
		{
			solve(a,b);
		}
	}
	return 0;
}