#include<bits/stdc++.h>
using namespace std;
int main(){
    int a,b,c,d;
    cin>>a>>b>>c>>d;
    if (a==c&&b==d){
        cout<<0;
        return 0;
    }
    if (a+b==c+d){
        cout<<1;
        return 0;
    }
    if (a-b==c-d){
        cout<<1;
        return 0;
    }
    if (abs(a-c)+abs(b-d)<=3){
        cout<<1;
        return 0;
    }
    if ((a+b)%2==(c+d)%2)
    {
        cout<<2;
        return 0;
    }
    if (abs(abs(a-b)-abs(c-d))<=5){
     cout<<2;
     return 0;
    }
    if (abs(abs(a+b)-abs(c+d))<=5){
     cout<<2;
     return 0;
    }
    cout<<3;

}
#include <bits/stdc++.h>
#define FOR(i, begin, end) for(int i=(begin);i<(end);i++)
#define IFOR(i, begin, end) for(int i=(end)-1;i>=(begin);i--)
#define rep(i, n) FOR(i,0,n)
#define irep(i, n) IFOR(i,0,n)
#define all(v) begin(v), end(v)
using namespace std;
using ll = long long;
using ull = unsigned long long;
using P = pair<int, int>;
using PLL = pair<ll, ll>;
using VI = vector<int>;
using VLL = vector<ll>;
using VB = vector<bool>;
using VP = vector<P>;
using Graph2 = vector<vector<int>>;
using PQ = priority_queue<int>;
template<typename T>istream& operator>>(istream&s,vector<T>&v){for(auto &i: v)s>>i;return s;}
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; }
bool second_compare(P a,P b){if(a.second!=b.second){return a.second<b.second;} else return true;}

int main() {
    ll x, y, z;
    cin >> x >> y >> z;
    for(ll i = 1001 * 1001; i >= 0; i--) {
        if (y*z > i*x) {
            cout << i << endl;
            return 0;
        }
    }
    cout << 0 << endl;
    return 0;
} 