#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main(void){
	int p,q;
	while(cin>>p>>q){
		vector<int> s;
		map<int,int> e;
		int a = p % q;
		int i = 0;
		int begin=0;
		e.insert(make_pair(a%q,i));
		a *= 10;
		while(++i){
			if(a%q!=0){//0で割り切れない時
				s.push_back(a/q);
				if(e.find(a%q)==e.end()){//過去に同じ余りがない時
					e.insert(make_pair(a%q,i));
					a %= q;
				}else{//過去に同じ余りがある時
					begin=(*(e.find(a%q))).second;
					for(int j=0;j<s.size();++j) cout<<s[j];
					cout<<"\n";
					for(int j=0;j<begin;++j) cout<<" ";
					for(int j=begin;j<i;++j) cout<<"^";
					cout<<"\n";
					break;
				}
			}else{//0で割り切れる時
					for(int j=0;j<s.size();++j) cout<<s[j];
					cout<<a/q<<"\n";
					break;
			}
			a *= 10;
		}
	}
	return 0;
}