#include <bits/stdc++.h>
#define MOD 1000000007
typedef long long ll;
using namespace std;

int R,N;

void solve(){
    vector<int> lx(N),rx(N),y(N);
    for(int i=0;i<N;i++) cin>>lx[i]>>rx[i]>>y[i];

    vector<int> high(2*R,0);
    for(int i=0;i<N;i++){
        for(int j=lx[i];j<rx[i];j++){
            if(j<-R||j>=R) continue;
            high[j+R]=max(high[j+R],y[i]);
        }
    }

    vector<int> mi(2*R+1,100);
    for(int i=0;i<=2*R;i++){
        if(i-1>=0) mi[i]=min(mi[i],high[i-1]);
        if(i<2*R) mi[i]=min(mi[i],high[i]);
    }

    double ans=10000.0;
    for(int h=0;h<=2*R;h++){
        double x=R-h;
        double y2=R*R-x*x;
        double z=sqrt(y2);
        ans=min(ans,mi[h]-z+R);
    }
    cout<<fixed<<setprecision(10)<<ans<<endl;
}

int main(){
  while(1){
      cin>>R>>N;
      if(R==0&&N==0) break;
      solve();
  }

  return 0;
}

