#include <iostream>
#include <algorithm>
#include <vector>
#include <map>

using namespace std;

int main() {
    int p, q; cin >> p >> q;
    p %= q;
    bool div = false;
    vector<int> vec;
    map<int, int> dict;
    int col = 0;
    while(true) {
        p *= 10;
        vec.push_back(p / q);
        if(p % q == 0) {
            div = true;
            break;
        }

        if(dict.count(p % q)) {
            col = dict[p % q] + 1;
            break;
        }
        else {
            dict[p % q] = col;
        }
        col++;
        p %= q;
    }

    if(div) {
        for(int i = 0; i < (int)vec.size(); ++i) {
            cout << vec[i];
        }
        cout << endl;
    }
    else {
        for(int i = 0; i < (int)vec.size(); i++) {
            cout << vec[i];
        }
        cout << endl;
        for(int i = 0; i < col; i++) {
            cout << ' ';
        }
        for(int i = 0; i < vec.size() - col; i++) {
            cout << '^';
        }
        cout << endl;
    }

}