#include <iostream>
#define rep(i,n) for(int i=0;i<(n);i++)

using namespace std;

int main()
{
	int p, q;

	while (cin >> p >> q ){
		string res = "";
		bool found = false;
		rep (i, 800 ){
			int r = 10*p/q;
			res += r + '0';
			if (10*p % q == 0 ){
				found = true;
				break;
			} // end if
			p = 10*p % q;
		} // end rep
		if (found ){
			cout << res << endl;
		}else{
			int sp = 0, ep = 0;
			string s = "", t = "";
			for (int i = 0; i < res.size(); i++ ){ // ツ開ツ始ツ暗環置
				bool same;			
				for (int l = 1; l <= 80; l++ ){
					same = true;
					s = res.substr (i, l );
					int cnt = 0;
					for (int j = i+l; j < res.size() && same; j += l ){
						t = res.substr (j, l );
						if (s == t ){
							cnt++;
						}else{
							same = false;
						} // end if
						if (cnt > 8 )
							break;
					} // end for
					if (same ){
						sp = i, ep = i+l;
						break;
					} // end if
				} // end for
				if (same )
					break;
			} // end for
			cout << res.substr (0, sp );
			cout << res.substr (sp, ep - sp ) << endl;
			cout << string (sp, ' ');
			cout << string (ep -sp ,'^') << endl;
		} // end if  
	} // end loop

		
	return 0;
}