#include <iostream>
#include <algorithm>

using namespace std;

void check(int *a, bool *b)
{
  for(int i = 0; i < 79; i++){
    for(int j = i+1; j < 80; j++){
      bool f = true;
      for(int k = 0; j+k < 80; k++)
	if(a[i+k] != a[j+k]) f = false;

      if(f){
	for(int k = i; k < j; k++) b[k] = true;
	return ;
      }
    }
  }

  return ;
}

int main()
{
  int p, q, a[100];
  bool b[100];

  while(cin>>p>>q){
    fill(b, b+100, false);
    for(int i = 0; i < 100; i++){
      if(p == 0){
	q = i;
	break;
      }
      p *= 10;
      a[i] = p/q;
      p %= q;
    }

    if(p == 0){
      for(int i = 0; i < q; i++) cout << a[i];
      cout << endl;
    } else {
      check(a, b);
      for(p = 0; p < 80 && !b[p]; p++) cout << a[p];
      for(int i = p; i < 80 && b[i]; i++) cout << a[i];
      cout << endl;

      for(int i = 0; i < p; i++) cout << " ";
      for(int i = p; i < 80 && b[i]; i++) cout << "^";
      cout << endl;
    }
  }

  return 0;
}