// i wants to take ioi
//binhtinhtutinkhongcaycunhungmotkhikhongcontutinnualatuyetvong
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define nn "\n"
#define pi pair<int, int>
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define eb emplace_back
#define pb push_back
#define TASK "Haidtron"
#define ms(a, x) memset(a, x, sizeof(a))
#define all(a) a.begin(), a.end()
#define All(a, n) a + 1, a + 1 + n
#define LOG 19
const int INF = 1e18;
const int mod = 1e9;
const int N = 1e5 + 5;
const int MOD = 998244353;
int bit[200000];
int x, y, r, ax, ay, bx, by;
void nhap(){
cin >> x >> y >> r;
cin >> ax >> ay >> bx >> by;
}
int kc2(int a, int b, int c, int d){
return (a - c) * (a - c) + (b - d) * (b - d);
}
void solve(){
int r2 = r * r;
int da2 = kc2(ax, ay, x, y);
int db2 = kc2(bx, by, x, y);
int ab2 = kc2(ax, ay, bx, by);
if(da2 <= r2 && db2 <= r2){
cout << 3 << nn;
return;
}
if(ab2 == 0){
cout << 4 << nn;
return;
}
int vx = bx - ax;
int vy = by - ay;
int t = (x - ax) * vx + (y - ay) * vy;
int kc_tam2 = 0;
if(t <= 0){
kc_tam2 = da2;
if(kc_tam2 > r2) cout << 4 << nn;
else if(kc_tam2 == r2) cout << 1 << nn;
else cout << 2 << nn;
}
else if(t >= ab2){
kc_tam2 = db2;
if(kc_tam2 > r2) cout << 4 << nn;
else if(kc_tam2 == r2) cout << 1 << nn;
else cout << 2 << nn;
}
else{
int cross = vx * (y - ay) - vy * (x - ax);
int lhs = cross * cross;
int rhs = r2 * ab2;
if(lhs > rhs) cout << 4 << nn;
else if(lhs == rhs) cout << 1 << nn;
else cout << 2 << nn;
}
}
signed main(){
if(fopen(TASK".inp", "r")){
freopen(TASK".inp", "r", stdin);
freopen(TASK".out", "w", stdout);
}
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
nhap();
solve();
return (0 ^ 0);
}
Ly8gaSB3YW50cyB0byB0YWtlIGlvaQovL2Jpbmh0aW5odHV0aW5raG9uZ2NheWN1bmh1bmdtb3RraGlraG9uZ2NvbnR1dGlubnVhbGF0dXlldHZvbmcKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgbm4gIlxuIgojZGVmaW5lIHBpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBsYiBsb3dlcl9ib3VuZAojZGVmaW5lIHViIHVwcGVyX2JvdW5kCiNkZWZpbmUgZWIgZW1wbGFjZV9iYWNrCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgVEFTSyAiSGFpZHRyb24iCgojZGVmaW5lIG1zKGEsIHgpIG1lbXNldChhLCB4LCBzaXplb2YoYSkpCiNkZWZpbmUgYWxsKGEpIGEuYmVnaW4oKSwgYS5lbmQoKQojZGVmaW5lIEFsbChhLCBuKSBhICsgMSwgYSArIDEgKyBuCgojZGVmaW5lIExPRyAxOQoKY29uc3QgaW50IElORiA9IDFlMTg7CmNvbnN0IGludCBtb2QgPSAxZTk7CmNvbnN0IGludCBOID0gMWU1ICsgNTsKY29uc3QgaW50IE1PRCA9IDk5ODI0NDM1MzsKCmludCBiaXRbMjAwMDAwXTsKaW50IHgsIHksIHIsIGF4LCBheSwgYngsIGJ5Owp2b2lkIG5oYXAoKXsKICAgIGNpbiA+PiB4ID4+IHkgPj4gcjsKICAgIGNpbiA+PiBheCA+PiBheSA+PiBieCA+PiBieTsKfQppbnQga2MyKGludCBhLCBpbnQgYiwgaW50IGMsIGludCBkKXsKICAgIHJldHVybiAoYSAtIGMpICogKGEgLSBjKSArIChiIC0gZCkgKiAoYiAtIGQpOwp9CnZvaWQgc29sdmUoKXsKICAgIGludCByMiA9IHIgKiByOwogICAgaW50IGRhMiA9IGtjMihheCwgYXksIHgsIHkpOwogICAgaW50IGRiMiA9IGtjMihieCwgYnksIHgsIHkpOwogICAgaW50IGFiMiA9IGtjMihheCwgYXksIGJ4LCBieSk7CiAgICBpZihkYTIgPD0gcjIgJiYgZGIyIDw9IHIyKXsKICAgICAgICBjb3V0IDw8IDMgPDwgbm47CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYoYWIyID09IDApewogICAgICAgIGNvdXQgPDwgNCA8PCBubjsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgdnggPSBieCAtIGF4OwogICAgaW50IHZ5ID0gYnkgLSBheTsKICAgIGludCB0ID0gKHggLSBheCkgKiB2eCArICh5IC0gYXkpICogdnk7CiAgICBpbnQga2NfdGFtMiA9IDA7CiAgICBpZih0IDw9IDApewogICAgICAgIGtjX3RhbTIgPSBkYTI7CiAgICAgICAgaWYoa2NfdGFtMiA+IHIyKSBjb3V0IDw8IDQgPDwgbm47CiAgICAgICAgZWxzZSBpZihrY190YW0yID09IHIyKSBjb3V0IDw8IDEgPDwgbm47CiAgICAgICAgZWxzZSBjb3V0IDw8IDIgPDwgbm47CiAgICB9CiAgICBlbHNlIGlmKHQgPj0gYWIyKXsKICAgICAgICBrY190YW0yID0gZGIyOwoKICAgICAgICBpZihrY190YW0yID4gcjIpIGNvdXQgPDwgNCA8PCBubjsKICAgICAgICBlbHNlIGlmKGtjX3RhbTIgPT0gcjIpIGNvdXQgPDwgMSA8PCBubjsKICAgICAgICBlbHNlIGNvdXQgPDwgMiA8PCBubjsKICAgIH0KICAgIGVsc2V7CiAgICAgICAgaW50IGNyb3NzID0gdnggKiAoeSAtIGF5KSAtIHZ5ICogKHggLSBheCk7CiAgICAgICAgaW50IGxocyA9IGNyb3NzICogY3Jvc3M7CiAgICAgICAgaW50IHJocyA9IHIyICogYWIyOwogICAgICAgIGlmKGxocyA+IHJocykgY291dCA8PCA0IDw8IG5uOwogICAgICAgIGVsc2UgaWYobGhzID09IHJocykgY291dCA8PCAxIDw8IG5uOwogICAgICAgIGVsc2UgY291dCA8PCAyIDw8IG5uOwogICAgfQp9CgpzaWduZWQgbWFpbigpewogICAgaWYoZm9wZW4oVEFTSyIuaW5wIiwgInIiKSl7CiAgICAgICAgZnJlb3BlbihUQVNLIi5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKFRBU0siLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgbmhhcCgpOwogICAgc29sdmUoKTsKICAgIHJldHVybiAoMCBeIDApOwp9