#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
const ll MAXN = 1e6 + 5;
ll spf[MAXN];
ll power(ll base, ll exp, ll mod)
{
if (exp == 0)
return 1 % mod;
ll half = power(base, exp / 2, mod);
ll ans = (half * half) % mod;
if (exp % 2 == 1)
ans = (ans * base) % mod;
return ans;
}
ll gcd(ll a, ll b)
{
if (b == 0)
return a;
return gcd(b, a % b);
}
ll lcm(ll a, ll b)
{
return a / gcd(a, b) * b;
}
void sieve()
{
for (int i = 1; i < MAXN; i++)
spf[i] = i;
for (int p = 2; p * p < MAXN; p++)
{
if (spf[p] == p)
{
for (int i = p * p; i < MAXN; i += p)
{
if (spf[i] == i)
spf[i] = p;
}
}
}
}
vector<pair<ll, ll>> primeFactorization(ll x)
{
vector<pair<ll, ll>> factors;
while (x > 1)
{
ll prime = spf[x];
ll count = 0;
while (x % prime == 0)
{
count++;
x /= prime;
}
factors.emplace_back(prime, count);
}
return factors;
}
void generateDivisors(const vector<pair<ll, ll>> &factors, vector<ll> &divisors, ll current = 1, int index = 0)
{
if (index == factors.size())
{
divisors.push_back(current);
return;
}
ll prime = factors[index].first;
ll exp = factors[index].second;
for (int i = 0; i <= exp; i++)
{
generateDivisors(factors, divisors, current, index + 1);
current *= prime;
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
ld a,b,c,d;
cin>>a>>b>>c>>d;
if((b-a) == (c-b) && (c-b) == (d-c))
{
cout<< d + (b-a);
}
else if((b / a) == (c / b) && (d / c) == (c / b) )
{
if((d * (b /a))>1)
{
cout<< d * (b /a);
}
}
else
{
cout<< 42 << endl;
}
return 0;
}
I2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKY29uc3QgbGwgTUFYTiA9IDFlNiArIDU7CmxsIHNwZltNQVhOXTsKCmxsIHBvd2VyKGxsIGJhc2UsIGxsIGV4cCwgbGwgbW9kKQp7CiAgICBpZiAoZXhwID09IDApCiAgICAgICAgcmV0dXJuIDEgJSBtb2Q7CgogICAgbGwgaGFsZiA9IHBvd2VyKGJhc2UsIGV4cCAvIDIsIG1vZCk7CiAgICBsbCBhbnMgPSAoaGFsZiAqIGhhbGYpICUgbW9kOwoKICAgIGlmIChleHAgJSAyID09IDEpCiAgICAgICAgYW5zID0gKGFucyAqIGJhc2UpICUgbW9kOwoKICAgIHJldHVybiBhbnM7Cn0KCmxsIGdjZChsbCBhLCBsbCBiKQp7CiAgICBpZiAoYiA9PSAwKQogICAgICAgIHJldHVybiBhOwogICAgcmV0dXJuIGdjZChiLCBhICUgYik7Cn0KCmxsIGxjbShsbCBhLCBsbCBiKQp7CiAgICByZXR1cm4gYSAvIGdjZChhLCBiKSAqIGI7Cn0KCnZvaWQgc2lldmUoKQp7CiAgICBmb3IgKGludCBpID0gMTsgaSA8IE1BWE47IGkrKykKICAgICAgICBzcGZbaV0gPSBpOwoKICAgIGZvciAoaW50IHAgPSAyOyBwICogcCA8IE1BWE47IHArKykKICAgIHsKICAgICAgICBpZiAoc3BmW3BdID09IHApCiAgICAgICAgewogICAgICAgICAgICBmb3IgKGludCBpID0gcCAqIHA7IGkgPCBNQVhOOyBpICs9IHApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChzcGZbaV0gPT0gaSkKICAgICAgICAgICAgICAgICAgICBzcGZbaV0gPSBwOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cgp2ZWN0b3I8cGFpcjxsbCwgbGw+PiBwcmltZUZhY3Rvcml6YXRpb24obGwgeCkKewogICAgdmVjdG9yPHBhaXI8bGwsIGxsPj4gZmFjdG9yczsKICAgIHdoaWxlICh4ID4gMSkKICAgIHsKICAgICAgICBsbCBwcmltZSA9IHNwZlt4XTsKICAgICAgICBsbCBjb3VudCA9IDA7CgogICAgICAgIHdoaWxlICh4ICUgcHJpbWUgPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgIHggLz0gcHJpbWU7CiAgICAgICAgfQogICAgICAgIGZhY3RvcnMuZW1wbGFjZV9iYWNrKHByaW1lLCBjb3VudCk7CiAgICB9CiAgICByZXR1cm4gZmFjdG9yczsKfQoKdm9pZCBnZW5lcmF0ZURpdmlzb3JzKGNvbnN0IHZlY3RvcjxwYWlyPGxsLCBsbD4+ICZmYWN0b3JzLCB2ZWN0b3I8bGw+ICZkaXZpc29ycywgbGwgY3VycmVudCA9IDEsIGludCBpbmRleCA9IDApCnsKICAgIGlmIChpbmRleCA9PSBmYWN0b3JzLnNpemUoKSkKICAgIHsKICAgICAgICBkaXZpc29ycy5wdXNoX2JhY2soY3VycmVudCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbGwgcHJpbWUgPSBmYWN0b3JzW2luZGV4XS5maXJzdDsKICAgIGxsIGV4cCA9IGZhY3RvcnNbaW5kZXhdLnNlY29uZDsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8PSBleHA7IGkrKykKICAgIHsKICAgICAgICBnZW5lcmF0ZURpdmlzb3JzKGZhY3RvcnMsIGRpdmlzb3JzLCBjdXJyZW50LCBpbmRleCArIDEpOwogICAgICAgIGN1cnJlbnQgKj0gcHJpbWU7CiAgICB9Cn0KCmludCBtYWluKCkKewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCiAgICBsZCBhLGIsYyxkOwogICAgY2luPj5hPj5iPj5jPj5kOwogICAgaWYoKGItYSkgPT0gKGMtYikgJiYgKGMtYikgPT0gKGQtYykpCiAgICB7CiAgICAgICAgY291dDw8IGQgKyAoYi1hKTsKICAgIH0KICAgIGVsc2UgaWYoKGIgLyBhKSA9PSAoYyAvIGIpICYmIChkIC8gYykgPT0gKGMgLyBiKSApCiAgICB7CiAgICAgICBpZigoZCAqIChiIC9hKSk+MSkKICAgICAgICAgewogICAgICAgICAgICBjb3V0PDwgZCAqIChiIC9hKTsKICAgICAgICAgfQogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGNvdXQ8PCA0MiA8PCBlbmRsOwogICAgfQogICAgcmV0dXJuIDA7Cn0K