#include <bits/stdc++.h>
using namespace std;
const long long N = 1e6;
const double EPS = 1e-7;
double dist(double x0, double y0, double x1, double y1) {
  return sqrt(((x0 - x1) * (x0 - x1)) + ((y0 - y1) * (y0 - y1)));
}
int32_t main() {
  double r, x0, y0, x1, y1;
  cin >> r >> x0 >> y0 >> x1 >> y1;
  cout.precision(8);
  cout << fixed;
  if (dist(x0, y0, x1, y1) > r) {
    cout << x0 << ' ' << y0 << ' ' << r;
    return 0;
  }
  if (x0 == x1) {
    cout << x0 << ' ';
    double R = (abs(y1 - y0) + r) / 2;
    if (y0 < y1)
      cout << y1 - R;
    else
      cout << y1 + R;
    cout << ' ' << R;
    return 0;
  }
  if (y0 == y1) {
    double R = (abs(x0 - x1) + r) / 2;
    if (x0 < x1)
      cout << x1 - R;
    else
      cout << x1 + R;
    cout << ' ' << y0 << ' ' << R;
    return 0;
  }
  double k = (y0 - y1) / (x0 - x1);
  double b = y0 - k * x0;
  double LX, RX;
  if (x0 > x1) {
    LX = x1, RX = x0 + r;
    while (RX - LX > EPS) {
      double MIDX1 = (RX - LX) / 3 + LX, MIDX2 = MIDX1 * 2 - LX;
      if (dist(x0, y0, MIDX2, k * MIDX2 + b) <= r)
        LX = MIDX2;
      else if (dist(x0, y0, MIDX1, k * MIDX1 + b) >= r)
        RX = MIDX1;
      else
        LX = MIDX1, RX = MIDX2;
    }
  } else {
    LX = x0 - r, RX = x1;
    while (RX - LX > EPS) {
      double MIDX1 = (RX - LX) / 3 + LX, MIDX2 = MIDX1 * 2 - LX;
      if (dist(x0, y0, MIDX1, k * MIDX1 + b) < r)
        RX = MIDX1;
      else if (dist(x0, y0, MIDX2, k * MIDX2 + b) > r)
        LX = MIDX2;
      else
        LX = MIDX1, RX = MIDX2;
    }
  }
  double Y = k * LX + b;
  double R = dist(x1, y1, LX, Y) / 2;
  cout << (LX + x1) / 2 << ' ' << (y1 + Y) / 2 << ' ' << R;
  return 0;
}
