#include <bits/stdc++.h>
using namespace std;
const long double pi = atan2(0, -1);
const long double eps = 1e-9, deps = 1e-12;
void adjustAngle(long double &a) {
  while (((a) < -eps ? -1 : (a) > eps) < 0) a += 180.0;
  while (((a - 180.0) < -eps ? -1 : (a - 180.0) > eps) >= 0) a -= 180.0;
}
struct point {
  long double x, y;
  point() {}
  point(long double _x, long double _y) : x(_x), y(_y) {}
  bool operator<(const point &o) const { return x == o.x ? y < o.y : x < o.x; }
  void scan() { cin >> x >> y; }
  void print() {
    cout << '(' << setprecision(6) << fixed << x << ',';
    cout << setprecision(6) << fixed << y << ')';
  }
};
point operator+(const point &u, const point &v) {
  return point(u.x + v.x, u.y + v.y);
}
point operator-(const point &u, const point &v) {
  return point(u.x - v.x, u.y - v.y);
}
point operator*(const point &o, long double k) {
  return point(o.x * k, o.y * k);
}
point operator/(const point &o, long double k) {
  return point(o.x / k, o.y / k);
}
void operator+=(point &u, point v) { u = u + v; }
void operator-=(point &u, point v) { u = u - v; }
void operator*=(point &u, long double k) { u = u * k; }
void operator/=(point &u, long double k) { u = u / k; }
long double angle(point o) { return atan2(o.y, o.x); }
long double anglePerpen(point o) { return atan2(o.y, o.x) + pi / 2; }
long double norm(point o) { return sqrt(((o.x) * (o.x)) + ((o.y) * (o.y))); }
long double norm2(point o) { return ((o.x) * (o.x)) + ((o.y) * (o.y)); }
point uni(point o) { return o / norm(o); }
long double cross(point u, point v) { return u.x * v.y - v.x * u.y; }
long double dot(point u, point v) { return u.x * v.x + u.y * v.y; }
long double dis(point u, point v) { return norm(u - v); }
long double dis2(point u, point v) { return norm2(u - v); }
long double area(point o, point u, point v) { return cross(u - o, v - o) / 2; }
long double area2(point o, point u, point v) { return cross(u - o, v - o); }
void rotate(point &o, long double a) {
  long double cosa = cos(a), sina = sin(a);
  point t = o;
  o.x = t.x * cosa - t.y * sina, o.y = t.x * sina + t.y * cosa;
}
point perpendi(point o) { return rotate(o, pi / 2), o; }
struct circle {
  long double r;
  point o;
  circle() {}
  circle(long double _r, point _o) : r(_r), o(_o) {}
  void scan() { cin >> o.x >> o.y >> r; }
  void print() {
    cout << '(' << setprecision(6) << fixed << o.x << ',';
    cout << setprecision(6) << fixed << o.y << ',';
    cout << setprecision(6) << fixed << r << ')' << '\n';
  }
};
bool inSide(circle c, point p) {
  return ((dis(c.o, p) - c.r) < -eps ? -1 : (dis(c.o, p) - c.r) > eps) < 0;
}
bool onSide(circle c, point p) {
  return ((dis(c.o, p) - c.r) < -eps ? -1 : (dis(c.o, p) - c.r) > eps) == 0;
}
bool outSide(circle c, point p) {
  return ((dis(c.o, p) - c.r) < -eps ? -1 : (dis(c.o, p) - c.r) > eps) > 0;
}
struct line {
  point u, v;
  line() {}
  line(point _u, point _v) : u(_u), v(_v) {}
  void scan() { cin >> u.x >> u.y >> v.x >> v.y; }
};
bool onLine(line l, point p) {
  return ((cross(p - l.u, l.v - l.u)) < -eps
              ? -1
              : (cross(p - l.u, l.v - l.u)) > eps) == 0;
}
long double dis(point o, line l) {
  return ((area2(o, l.u, l.v)) < -eps ? -(area2(o, l.u, l.v))
                                      : (area2(o, l.u, l.v))) /
         dis(l.u, l.v);
}
point proportionateLine(line l, long double k) { return l.u + (l.v - l.u) * k; }
point projectionOnLine(point p, line l) {
  point w = uni(l.v - l.u);
  return l.u + w * dot(p - l.u, l.v - l.u) / norm(l.v - l.u);
}
line translateByDis(line l, long double r) {
  long double a = anglePerpen(l.v - l.u), delx = r * cos(a), dely = r * sin(a);
  l.u += point(delx, dely), l.v += point(delx, dely);
  return l;
}
point moveOnLineByDis(point p, line l, long double r) {
  long double a = angle(l.v - l.u), delx = r * cos(a), dely = r * sin(a);
  p.x += delx, p.y += dely;
  return p;
}
line angleBisector(point o, point u, point v) {
  u -= o, v -= o, u = uni(u), v = uni(v);
  return line(o, point(o.x + (u.x + v.x) / 2, o.y + (u.y + v.y) / 2));
}
line perpendicularBisector(point u, point v) {
  return line((u + v) / 2, (u + v) / 2 + perpendi(v - u));
}
point intersectionOfLine(line A, line B) {
  point a = A.u, b = A.v, c = B.u, d = B.v;
  long double sp = area(a, b, d), sq = area(a, b, c);
  return point((c.x * sp - d.x * sq) / (sp - sq),
               (c.y * sp - d.y * sq) / (sp - sq));
}
vector<point> intersectionOfCircle(circle A, circle B) {
  vector<point> ret;
  ret.clear();
  if (((dis(A.o, B.o) - A.r - B.r) < -eps
           ? -1
           : (dis(A.o, B.o) - A.r - B.r) > eps) > 0)
    return ret;
  if (((dis(A.o, B.o) - A.r - B.r) < -eps
           ? -1
           : (dis(A.o, B.o) - A.r - B.r) > eps) == 0) {
    ret.push_back(proportionateLine(line(A.o, B.o), A.r / (A.r + B.r)));
    return ret;
  }
  long double cosa = (((A.r) * (A.r)) + dis2(A.o, B.o) - ((B.r) * (B.r))) /
                     (2.0 * A.r * dis(A.o, B.o));
  point pr = proportionateLine(line(A.o, B.o), A.r * cosa / dis(A.o, B.o));
  point perp = uni(perpendi(B.o - A.o));
  line ve = line(pr, pr + perp);
  long double d = sqrt(((A.r) * (A.r)) - dis2(pr, A.o));
  ret.push_back(moveOnLineByDis(pr, ve, d));
  ret.push_back(moveOnLineByDis(pr, ve, -d));
  return ret;
}
vector<point> intersectionOfLineAndCircle(line l, circle c) {
  vector<point> ret;
  ret.clear();
  if (((dis(c.o, l) - c.r) < -eps ? -1 : (dis(c.o, l) - c.r) > eps) > 0)
    return ret;
  if (((dis(c.o, l) - c.r) < -eps ? -1 : (dis(c.o, l) - c.r) > eps) == 0) {
    ret.push_back(projectionOnLine(c.o, l));
    return ret;
  }
  point pr = projectionOnLine(c.o, l), tmp;
  long double d = sqrt(((c.r) * (c.r)) - dis2(pr, c.o));
  tmp = moveOnLineByDis(pr, l, d), ret.push_back(tmp);
  tmp = moveOnLineByDis(pr, l, -d), ret.push_back(tmp);
  return ret;
}
circle circumCenter(point u, point v, point w) {
  line l1 = perpendicularBisector(u, v), l2 = perpendicularBisector(v, w);
  point o = intersectionOfLine(l1, l2);
  return circle(dis(o, u), o);
}
circle inCenter(point u, point v, point w) {
  line l[2];
  point p;
  l[0] = angleBisector(u, v, w), l[1] = angleBisector(v, w, u);
  p = intersectionOfLine(l[0], l[1]);
  return circle(dis(p, line(u, v)), p);
}
point circleInversion(circle re, point p) {
  p = p - re.o;
  long double l1 = norm2(p),
              l2 = ((((re.r) * (re.r))) * (((re.r) * (re.r)))) / l1;
  point ret;
  ret.x = p.x * sqrt(l2 / l1) + re.o.x;
  ret.y = p.y * sqrt(l2 / l1) + re.o.y;
  return ret;
}
circle circleInversionToCircle(circle re, circle ob) {
  circle ret;
  long double t = dis(re.o, ob.o), u = 1.0 / (t - ob.r), v = 1.0 / (t + ob.r),
              r, k;
  r = (u - v) / 2.0, k = r / ob.r;
  return circle(r, re.o + (ob.o - re.o) * k);
}
vector<long double> tangentLineThroughPoint(circle c, point p) {
  vector<long double> ret;
  ret.clear();
  long double an, a;
  if (inSide(c, p)) return ret;
  if (onSide(c, p)) {
    a = ((anglePerpen(c.o - p)) / pi * 180.0), adjustAngle(a);
    return ret.push_back(a), ret;
  }
  an = asin(c.r / dis(c.o, p));
  a = ((angle(c.o - p) + an) / pi * 180.0), adjustAngle(a), ret.push_back(a);
  a = ((angle(c.o - p) - an) / pi * 180.0), adjustAngle(a), ret.push_back(a);
  return ret;
}
vector<point> circleThroughPointAndTangentToLineWithRadius(point p, line l,
                                                           long double r) {
  vector<point> ret, tmp;
  ret.clear();
  circle c = circle(r, p);
  line l1 = translateByDis(l, r), l2 = translateByDis(l, -r);
  tmp = intersectionOfLineAndCircle(l1, c);
  for (int i = 0; i < tmp.size(); ++i) ret.push_back(tmp[i]);
  tmp = intersectionOfLineAndCircle(l2, c);
  for (int i = 0; i < tmp.size(); ++i) ret.push_back(tmp[i]);
  return ret;
}
vector<point> circleTangentToTwoLinesWithRadius(line l1, line l2,
                                                long double r) {
  line la, lb;
  vector<point> ret;
  ret.clear();
  la = translateByDis(l1, r), lb = translateByDis(l2, r);
  ret.push_back(intersectionOfLine(la, lb));
  la = translateByDis(l1, -r), lb = translateByDis(l2, r);
  ret.push_back(intersectionOfLine(la, lb));
  la = translateByDis(l1, r), lb = translateByDis(l2, -r);
  ret.push_back(intersectionOfLine(la, lb));
  la = translateByDis(l1, -r), lb = translateByDis(l2, -r);
  ret.push_back(intersectionOfLine(la, lb));
  return ret;
}
vector<point> circleTangentToTwoDisjointCirclesWithRadius(circle c1, circle c2,
                                                          long double r) {
  circle ca, cb;
  ca = circle(c1.r + r, c1.o), cb = circle(c2.r + r, c2.o);
  return intersectionOfCircle(ca, cb);
}
void openStreamOptimize() { std ::ios ::sync_with_stdio(false); }
void openSrand() { srand(time(0)); }
int main() {
  int T, X, Y, n;
  circle ori, refe, f0, fk, ffk, c[2];
  for (cin >> T; T; --T) {
    scanf("%d%d%d", &X, &Y, &n);
    ori = circle(X, point(0, 0));
    c[0] = circle(Y, point(X - Y, 0));
    c[1] = circle(X - Y, point(-Y, 0));
    refe = circle(0, point(X, 0));
    f0 = circleInversionToCircle(refe, c[1]);
    fk = circle(f0.r, point(f0.o.x, f0.o.y + 2.0 * n * f0.r));
    ffk = circleInversionToCircle(refe, fk);
    printf("%.10Lf\n", ffk.r);
  }
  return 0;
}

### Prompt

Please create a solution in CPP to the following problem:

Have you ever tasted Martian food? Well, you should.

Their signature dish is served on a completely black plate with the radius of R, flat as a pancake.

First, they put a perfectly circular portion of the Golden Honduras on the plate. It has the radius of r and is located as close to the edge of the plate as possible staying entirely within the plate. I. e. Golden Honduras touches the edge of the plate from the inside. It is believed that the proximity of the portion of the Golden Honduras to the edge of a plate demonstrates the neatness and exactness of the Martians.

Then a perfectly round portion of Pink Guadeloupe is put on the plate. The Guadeloupe should not overlap with Honduras, should not go beyond the border of the plate, but should have the maximum radius. I. e. Pink Guadeloupe should touch the edge of the plate from the inside, and touch Golden Honduras from the outside. For it is the size of the Rose Guadeloupe that shows the generosity and the hospitality of the Martians.

Further, the first portion (of the same perfectly round shape) of Green Bull Terrier is put on the plate. It should come in contact with Honduras and Guadeloupe, should not go beyond the border of the plate and should have maximum radius.

Each of the following portions of the Green Bull Terrier must necessarily touch the Golden Honduras, the previous portion of the Green Bull Terrier and touch the edge of a plate, but should not go beyond the border.

To determine whether a stranger is worthy to touch the food, the Martians ask him to find the radius of the k-th portion of the Green Bull Terrier knowing the radii of a plate and a portion of the Golden Honduras. And are you worthy?

Input

The first line contains integer t (1 ≤ t ≤ 104) — amount of testcases.

Each of the following t lines contain three positive integers: the radii of the plate and a portion of the Golden Honduras R and r (1 ≤ r < R ≤ 104) and the number k (1 ≤ k ≤ 104).

In the pretests 1 ≤ k ≤ 2.

Output

Print t lines — the radius of the k-th portion of the Green Bull Terrier for each test. The absolute or relative error of the answer should not exceed 10 - 6.

Examples

Input

2
4 3 1
4 2 2


Output

0.9230769231
0.6666666667

Note

Dish from the first sample looks like this:

<image>

Dish from the second sample looks like this:

<image>

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
const long double pi = atan2(0, -1);
const long double eps = 1e-9, deps = 1e-12;
void adjustAngle(long double &a) {
  while (((a) < -eps ? -1 : (a) > eps) < 0) a += 180.0;
  while (((a - 180.0) < -eps ? -1 : (a - 180.0) > eps) >= 0) a -= 180.0;
}
struct point {
  long double x, y;
  point() {}
  point(long double _x, long double _y) : x(_x), y(_y) {}
  bool operator<(const point &o) const { return x == o.x ? y < o.y : x < o.x; }
  void scan() { cin >> x >> y; }
  void print() {
    cout << '(' << setprecision(6) << fixed << x << ',';
    cout << setprecision(6) << fixed << y << ')';
  }
};
point operator+(const point &u, const point &v) {
  return point(u.x + v.x, u.y + v.y);
}
point operator-(const point &u, const point &v) {
  return point(u.x - v.x, u.y - v.y);
}
point operator*(const point &o, long double k) {
  return point(o.x * k, o.y * k);
}
point operator/(const point &o, long double k) {
  return point(o.x / k, o.y / k);
}
void operator+=(point &u, point v) { u = u + v; }
void operator-=(point &u, point v) { u = u - v; }
void operator*=(point &u, long double k) { u = u * k; }
void operator/=(point &u, long double k) { u = u / k; }
long double angle(point o) { return atan2(o.y, o.x); }
long double anglePerpen(point o) { return atan2(o.y, o.x) + pi / 2; }
long double norm(point o) { return sqrt(((o.x) * (o.x)) + ((o.y) * (o.y))); }
long double norm2(point o) { return ((o.x) * (o.x)) + ((o.y) * (o.y)); }
point uni(point o) { return o / norm(o); }
long double cross(point u, point v) { return u.x * v.y - v.x * u.y; }
long double dot(point u, point v) { return u.x * v.x + u.y * v.y; }
long double dis(point u, point v) { return norm(u - v); }
long double dis2(point u, point v) { return norm2(u - v); }
long double area(point o, point u, point v) { return cross(u - o, v - o) / 2; }
long double area2(point o, point u, point v) { return cross(u - o, v - o); }
void rotate(point &o, long double a) {
  long double cosa = cos(a), sina = sin(a);
  point t = o;
  o.x = t.x * cosa - t.y * sina, o.y = t.x * sina + t.y * cosa;
}
point perpendi(point o) { return rotate(o, pi / 2), o; }
struct circle {
  long double r;
  point o;
  circle() {}
  circle(long double _r, point _o) : r(_r), o(_o) {}
  void scan() { cin >> o.x >> o.y >> r; }
  void print() {
    cout << '(' << setprecision(6) << fixed << o.x << ',';
    cout << setprecision(6) << fixed << o.y << ',';
    cout << setprecision(6) << fixed << r << ')' << '\n';
  }
};
bool inSide(circle c, point p) {
  return ((dis(c.o, p) - c.r) < -eps ? -1 : (dis(c.o, p) - c.r) > eps) < 0;
}
bool onSide(circle c, point p) {
  return ((dis(c.o, p) - c.r) < -eps ? -1 : (dis(c.o, p) - c.r) > eps) == 0;
}
bool outSide(circle c, point p) {
  return ((dis(c.o, p) - c.r) < -eps ? -1 : (dis(c.o, p) - c.r) > eps) > 0;
}
struct line {
  point u, v;
  line() {}
  line(point _u, point _v) : u(_u), v(_v) {}
  void scan() { cin >> u.x >> u.y >> v.x >> v.y; }
};
bool onLine(line l, point p) {
  return ((cross(p - l.u, l.v - l.u)) < -eps
              ? -1
              : (cross(p - l.u, l.v - l.u)) > eps) == 0;
}
long double dis(point o, line l) {
  return ((area2(o, l.u, l.v)) < -eps ? -(area2(o, l.u, l.v))
                                      : (area2(o, l.u, l.v))) /
         dis(l.u, l.v);
}
point proportionateLine(line l, long double k) { return l.u + (l.v - l.u) * k; }
point projectionOnLine(point p, line l) {
  point w = uni(l.v - l.u);
  return l.u + w * dot(p - l.u, l.v - l.u) / norm(l.v - l.u);
}
line translateByDis(line l, long double r) {
  long double a = anglePerpen(l.v - l.u), delx = r * cos(a), dely = r * sin(a);
  l.u += point(delx, dely), l.v += point(delx, dely);
  return l;
}
point moveOnLineByDis(point p, line l, long double r) {
  long double a = angle(l.v - l.u), delx = r * cos(a), dely = r * sin(a);
  p.x += delx, p.y += dely;
  return p;
}
line angleBisector(point o, point u, point v) {
  u -= o, v -= o, u = uni(u), v = uni(v);
  return line(o, point(o.x + (u.x + v.x) / 2, o.y + (u.y + v.y) / 2));
}
line perpendicularBisector(point u, point v) {
  return line((u + v) / 2, (u + v) / 2 + perpendi(v - u));
}
point intersectionOfLine(line A, line B) {
  point a = A.u, b = A.v, c = B.u, d = B.v;
  long double sp = area(a, b, d), sq = area(a, b, c);
  return point((c.x * sp - d.x * sq) / (sp - sq),
               (c.y * sp - d.y * sq) / (sp - sq));
}
vector<point> intersectionOfCircle(circle A, circle B) {
  vector<point> ret;
  ret.clear();
  if (((dis(A.o, B.o) - A.r - B.r) < -eps
           ? -1
           : (dis(A.o, B.o) - A.r - B.r) > eps) > 0)
    return ret;
  if (((dis(A.o, B.o) - A.r - B.r) < -eps
           ? -1
           : (dis(A.o, B.o) - A.r - B.r) > eps) == 0) {
    ret.push_back(proportionateLine(line(A.o, B.o), A.r / (A.r + B.r)));
    return ret;
  }
  long double cosa = (((A.r) * (A.r)) + dis2(A.o, B.o) - ((B.r) * (B.r))) /
                     (2.0 * A.r * dis(A.o, B.o));
  point pr = proportionateLine(line(A.o, B.o), A.r * cosa / dis(A.o, B.o));
  point perp = uni(perpendi(B.o - A.o));
  line ve = line(pr, pr + perp);
  long double d = sqrt(((A.r) * (A.r)) - dis2(pr, A.o));
  ret.push_back(moveOnLineByDis(pr, ve, d));
  ret.push_back(moveOnLineByDis(pr, ve, -d));
  return ret;
}
vector<point> intersectionOfLineAndCircle(line l, circle c) {
  vector<point> ret;
  ret.clear();
  if (((dis(c.o, l) - c.r) < -eps ? -1 : (dis(c.o, l) - c.r) > eps) > 0)
    return ret;
  if (((dis(c.o, l) - c.r) < -eps ? -1 : (dis(c.o, l) - c.r) > eps) == 0) {
    ret.push_back(projectionOnLine(c.o, l));
    return ret;
  }
  point pr = projectionOnLine(c.o, l), tmp;
  long double d = sqrt(((c.r) * (c.r)) - dis2(pr, c.o));
  tmp = moveOnLineByDis(pr, l, d), ret.push_back(tmp);
  tmp = moveOnLineByDis(pr, l, -d), ret.push_back(tmp);
  return ret;
}
circle circumCenter(point u, point v, point w) {
  line l1 = perpendicularBisector(u, v), l2 = perpendicularBisector(v, w);
  point o = intersectionOfLine(l1, l2);
  return circle(dis(o, u), o);
}
circle inCenter(point u, point v, point w) {
  line l[2];
  point p;
  l[0] = angleBisector(u, v, w), l[1] = angleBisector(v, w, u);
  p = intersectionOfLine(l[0], l[1]);
  return circle(dis(p, line(u, v)), p);
}
point circleInversion(circle re, point p) {
  p = p - re.o;
  long double l1 = norm2(p),
              l2 = ((((re.r) * (re.r))) * (((re.r) * (re.r)))) / l1;
  point ret;
  ret.x = p.x * sqrt(l2 / l1) + re.o.x;
  ret.y = p.y * sqrt(l2 / l1) + re.o.y;
  return ret;
}
circle circleInversionToCircle(circle re, circle ob) {
  circle ret;
  long double t = dis(re.o, ob.o), u = 1.0 / (t - ob.r), v = 1.0 / (t + ob.r),
              r, k;
  r = (u - v) / 2.0, k = r / ob.r;
  return circle(r, re.o + (ob.o - re.o) * k);
}
vector<long double> tangentLineThroughPoint(circle c, point p) {
  vector<long double> ret;
  ret.clear();
  long double an, a;
  if (inSide(c, p)) return ret;
  if (onSide(c, p)) {
    a = ((anglePerpen(c.o - p)) / pi * 180.0), adjustAngle(a);
    return ret.push_back(a), ret;
  }
  an = asin(c.r / dis(c.o, p));
  a = ((angle(c.o - p) + an) / pi * 180.0), adjustAngle(a), ret.push_back(a);
  a = ((angle(c.o - p) - an) / pi * 180.0), adjustAngle(a), ret.push_back(a);
  return ret;
}
vector<point> circleThroughPointAndTangentToLineWithRadius(point p, line l,
                                                           long double r) {
  vector<point> ret, tmp;
  ret.clear();
  circle c = circle(r, p);
  line l1 = translateByDis(l, r), l2 = translateByDis(l, -r);
  tmp = intersectionOfLineAndCircle(l1, c);
  for (int i = 0; i < tmp.size(); ++i) ret.push_back(tmp[i]);
  tmp = intersectionOfLineAndCircle(l2, c);
  for (int i = 0; i < tmp.size(); ++i) ret.push_back(tmp[i]);
  return ret;
}
vector<point> circleTangentToTwoLinesWithRadius(line l1, line l2,
                                                long double r) {
  line la, lb;
  vector<point> ret;
  ret.clear();
  la = translateByDis(l1, r), lb = translateByDis(l2, r);
  ret.push_back(intersectionOfLine(la, lb));
  la = translateByDis(l1, -r), lb = translateByDis(l2, r);
  ret.push_back(intersectionOfLine(la, lb));
  la = translateByDis(l1, r), lb = translateByDis(l2, -r);
  ret.push_back(intersectionOfLine(la, lb));
  la = translateByDis(l1, -r), lb = translateByDis(l2, -r);
  ret.push_back(intersectionOfLine(la, lb));
  return ret;
}
vector<point> circleTangentToTwoDisjointCirclesWithRadius(circle c1, circle c2,
                                                          long double r) {
  circle ca, cb;
  ca = circle(c1.r + r, c1.o), cb = circle(c2.r + r, c2.o);
  return intersectionOfCircle(ca, cb);
}
void openStreamOptimize() { std ::ios ::sync_with_stdio(false); }
void openSrand() { srand(time(0)); }
int main() {
  int T, X, Y, n;
  circle ori, refe, f0, fk, ffk, c[2];
  for (cin >> T; T; --T) {
    scanf("%d%d%d", &X, &Y, &n);
    ori = circle(X, point(0, 0));
    c[0] = circle(Y, point(X - Y, 0));
    c[1] = circle(X - Y, point(-Y, 0));
    refe = circle(0, point(X, 0));
    f0 = circleInversionToCircle(refe, c[1]);
    fk = circle(f0.r, point(f0.o.x, f0.o.y + 2.0 * n * f0.r));
    ffk = circleInversionToCircle(refe, fk);
    printf("%.10Lf\n", ffk.r);
  }
  return 0;
}

```