#include <bits/stdc++.h>
using namespace std;
template <typename T>
struct Vec {
  T x, y;
  template <typename U>
  Vec(Vec<U> v) : x((T)v.x), y((T)v.y) {}
  Vec(T x, T y) : x(x), y(y) {}
  Vec() : x(T()), y(T()) {}
  inline T len_sqr() { return x * x + y * y; }
  inline long double len() { return sqrt(x * x + y * y); }
  inline Vec<long double> normal() {
    if (len_sqr() == 0) return *this;
    long double inv = 1 / len();
    return Vec(x * inv, y * inv);
  }
  inline Vec<T> rot90() { return Vec(-y, x); }
  inline Vec<long double> rot(long double angle) {
    long double sn = sin(angle);
    long double cs = cos(angle);
    return Vec(x * cs - y * sn, x * sn + y * cs);
  }
  friend T operator^(const Vec& a, const Vec& b) {
    return a.x * b.y - a.y * b.x;
  }
  friend T operator*(const Vec& a, const Vec& b) {
    return a.x * b.x + a.y * b.y;
  }
  friend Vec operator+(const Vec& a, const Vec& b) {
    return Vec(a.x + b.x, a.y + b.y);
    ;
  }
  friend Vec operator-(const Vec& a, const Vec& b) {
    return Vec(a.x - b.x, a.y - b.y);
    ;
  }
  friend Vec operator*(const Vec& a, T k) { return Vec(a.x * k, a.y * k); }
  friend Vec operator*(T k, const Vec& a) { return Vec(a.x * k, a.y * k); }
  friend Vec operator/(const Vec& a, T k) { return Vec(a.x / k, a.y / k); }
  friend istream& operator>>(istream& is, Vec& pt) {
    is >> pt.x >> pt.y;
    return is;
  }
  friend ostream& operator<<(ostream& os, Vec pt) {
    os << pt.x << ' ' << pt.y;
    return os;
  }
  const bool operator==(const Vec& v) { return v.x == x && v.y == y; }
  const Vec& operator+=(const Vec& v) {
    x += v.x;
    y += v.y;
    return *this;
  }
  const Vec& operator-=(const Vec& v) {
    x -= v.x;
    y -= v.y;
    return *this;
  }
  const Vec& operator*=(const T k) {
    x *= k;
    y *= k;
    return *this;
  }
  const Vec& operator/=(const T k) {
    x /= k;
    y /= k;
    return *this;
  }
  Vec operator-() { return Vec(-x, -y); }
};
int main() {
  long double R;
  Vec<long double> cent, fif;
  cin >> R;
  cin >> cent.x >> cent.y;
  cin >> fif.x >> fif.y;
  Vec<long double> direction = cent - fif;
  cout << fixed << setprecision(10);
  if (fif == cent) {
    Vec<long double> centd = cent;
    long double Rd = R;
    centd.y -= Rd / 2;
    cout << centd << ' ' << Rd / 2;
  } else if (direction.len_sqr() > R * R) {
    cout << cent << ' ' << R;
  } else {
    direction = direction.normal() * (R + direction.len());
    Vec<long double> res = fif + direction / 2;
    cout << res << ' ' << direction.len() / 2 << endl;
  }
}
