#include<bits/stdc++.h>
using namespace std;
using ll = long long ;
ll gcd(int a,int b){
while(b){
ll du = a%b;
a = b;
b = du;
}
return a;
}
ll lcm(int a,int b){
return a/gcd(a,b)*b;
}
struct PhanSo{
ll tu,mau;
void rutGon(){
ll uc = gcd(this->tu,this->mau);
this->tu/=uc;
this->mau/=uc;
}
PhanSo operator - (PhanSo b){
ll mauChung = this->mau*b.mau;
ll t1 = this->tu*b.mau - b.tu*this->mau;
PhanSo res{t1,mauChung};
res.rutGon();
return res;
}
};
int main(){
PhanSo a;
cin >> a.tu >> a.mau ;
while(a.tu){
ll x ;
if(a.mau%a.tu ==0){
x = a.mau / a.tu;
}
else x = a.mau / a.tu + 1;
PhanSo donVi{1,x};
cout << 1 << "/" << x;
a = a - donVi;
if(a.tu) cout << " + ";
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbGwgPSBsb25nIGxvbmcgOwpsbCBnY2QoaW50IGEsaW50IGIpewogICAgd2hpbGUoYil7CiAgICAgICAgbGwgZHUgPSBhJWI7CiAgICAgICAgYSA9IGI7CiAgICAgICAgYiA9IGR1OwogICAgfQogICAgcmV0dXJuIGE7Cn0KbGwgbGNtKGludCBhLGludCBiKXsKICAgIHJldHVybiBhL2djZChhLGIpKmI7Cn0Kc3RydWN0IFBoYW5Tb3sKICAgIGxsIHR1LG1hdTsKICAgIHZvaWQgcnV0R29uKCl7CiAgICAgICAgbGwgdWMgPSBnY2QodGhpcy0+dHUsdGhpcy0+bWF1KTsKICAgICAgICB0aGlzLT50dS89dWM7CiAgICAgICAgdGhpcy0+bWF1Lz11YzsKICAgIH0KICAgIFBoYW5TbyBvcGVyYXRvciAtIChQaGFuU28gYil7CiAgICAgICAgbGwgbWF1Q2h1bmcgPSB0aGlzLT5tYXUqYi5tYXU7CiAgICAgICAgbGwgdDEgPSB0aGlzLT50dSpiLm1hdSAtIGIudHUqdGhpcy0+bWF1OwogICAgICAgIFBoYW5TbyByZXN7dDEsbWF1Q2h1bmd9OwogICAgICAgIHJlcy5ydXRHb24oKTsKICAgICAgICByZXR1cm4gcmVzOwogICAgfQp9OwppbnQgbWFpbigpewogICAgUGhhblNvIGE7CiAgICBjaW4gPj4gYS50dSA+PiBhLm1hdSA7CiAgICB3aGlsZShhLnR1KXsKICAgICAgICBsbCB4IDsKICAgICAgICBpZihhLm1hdSVhLnR1ID09MCl7CiAgICAgICAgICAgIHggPSBhLm1hdSAvIGEudHU7CiAgICAgICAgfQogICAgICAgIGVsc2UgeCA9IGEubWF1IC8gYS50dSArIDE7CiAgICAgICAgUGhhblNvIGRvblZpezEseH07CiAgICAgICAgY291dCA8PCAxIDw8ICIvIiA8PCB4OwogICAgICAgIGEgPSBhIC0gZG9uVmk7CiAgICAgICAgaWYoYS50dSkgY291dCA8PCAiICsgIjsKICAgIH0KfQo=