#include <bits/stdc++.h>
using namespace std;
struct pv {
  double x, y;
  pv() { x = y = 0; }
  pv(double a, double b) {
    x = a;
    y = b;
  }
  pv operator-(pv g) { return pv(x - g.x, y - g.y); }
  pv operator+(pv g) { return pv(x + g.x, y + g.y); }
  bool operator==(pv g) { return x == g.x && y == g.y; }
  double norma() { return hypot(x, y); }
  void divide(double k) {
    x = x / k;
    y = y / k;
  }
  void multiply(double k) {
    x = x * k;
    y = y * k;
  }
};
double R;
pv C, f;
double dist(pv a, pv b) { return hypot(a.x - b.x, a.y - b.y); }
bool inCircle(pv a) { return dist(a, C) <= R; }
pv rotate(pv a) { return pv(-a.y, a.x); }
int main() {
  cin >> R >> C.x >> C.y >> f.x >> f.y;
  if (!inCircle(f)) {
    printf("%.10lf %.10lf %.10lf\n", C.x, C.y, 1.0 * R);
    return 0;
  }
  pv u;
  if (f == C) {
    u = pv(R * 0.5, 0);
  } else
    u = f - C;
  u = rotate(u);
  u = rotate(u);
  if (!(f == C)) u.multiply(2.0);
  u.divide(u.norma());
  u.multiply((R + dist(f, C)) * 0.5);
  pv ans = f + u;
  printf("%.10lf %.10lf %.10lf\n", ans.x, ans.y, dist(ans, f));
  return 0;
}
