#include<string>
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
struct node {
int a, b, c;
};
node ston(string n) {
int i = 0;
for (; i < n.size(); i++) {
if (n[i] == '.') break;
}
string t = n.substr(0, i);
node no;
sscanf(t.c_str(), "%d", &no.a);
int j = i + 1;
for (; j < n.size(); j++) {
if (n[j] == '.') break;
}
t = n.substr(i + 1, j);
sscanf(t.c_str(), "%d", &no.b);
t = n.substr(j + 1, n.size());
sscanf(t.c_str(), "%d", &no.c);
return no;
}
void plus_print(node na, node nb) {
int temp = na.c + nb.c;
node out;
out.c = temp % 29;
int temp2 = na.b + nb.b + temp / 29;
out.b = temp2 % 17;
out.a = na.a + nb.a + temp2 / 17;
printf("%d.%d.%d\n", out.a, out.b, out.c);
return;
}
int main() {
string sa, sb;
cin >> sa >> sb;
node na = ston(sa);
node nb = ston(sb);
plus_print(na, nb);
}