//StudybarCommentBegin
#include <iostream>
#include <iomanip>
#include <string>
//StudybarCommentEnd
using namespace std;
class ComplexNumber{
private:
double x,y;
public:
ComplexNumber(double a,double b){
x=a;y=b;
}
ComplexNumber(double a){
x=a;y=0;
}
ComplexNumber(){
x=0;y=0;
}
friend std::istream& operator>>(std::istream& in, ComplexNumber& z) {
in >> z.x >> z.y;
return in;
}
friend std::ostream& operator<<(std::ostream& out, const ComplexNumber& z) {
if (z.y == 0) {
out << std::fixed << std::setprecision(0) << z.x;
} else {
out << std::fixed << std::setprecision(2) << z.x;
if (z.y > 0) {
out << "+" << std::setprecision(2) << z.y << "i";
} else {
out << std::setprecision(2) << z.y << "i";
}
}
return out;
}
ComplexNumber operator+ (ComplexNumber &z){
ComplexNumber t;
t.x=x+z.x;
t.y=y+z.y;
return t;
}
void Set(double a,double b){
x=a;y=b;
}
ComplexNumber operator- (ComplexNumber &z){
ComplexNumber t;
t.x=x-z.x;
t.y=y-z.y;
return t;
}
ComplexNumber operator* (ComplexNumber &z){
ComplexNumber t;
t.x=x*z.x-y*z.y;
t.y=x*z.y+y*z.x;
return t;
}
ComplexNumber operator/ (ComplexNumber &z){
ComplexNumber t;
t.x=(x*z.x+y*z.y)/(z.x*z.x+z.y*z.y);
t.y=(y*z.x-z.y*x)/(z.x*z.x+z.y*z.y);
return t;
}
};
//StudybarCommentBegin
void CN() { //ComplexNumber
ComplexNumber cn1, cn2;
std::cin >> cn1 >> cn2;
std::cout<<cn1+cn2 << std::endl;
std::cout<<cn1 - cn2 << std::endl;
std::cout<<cn1*cn2 << std::endl;
std::cout<<cn1 / cn2 << std::endl;
}
int main(void) {
CN();
return 0;
}
//StudybarCommentEnd