#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;

int main(){
	int n, r;
	int X[41], L[41], R[41];//X[i] = i - 20
	int x_l, x_r, h;
	double t;
	
	while(true){
		scanf("%d%d", &r, &n);
		if(r == 0 && n == 0) break;
		for(int i = -20; i < 20; i++){
			L[i + 20] = 0; R[i + 20] = 0;
		}
		for(int i = 0; i < n; i++){
			scanf("%d%d%d", &x_l, &x_r, &h);
			for(int i = x_l + 1; i <= x_r; i++){
				L[i + 20] = max(L[i + 20], h);
			}
			for(int i = x_l; i < x_r; i++){
				R[i + 20] = max(R[i + 20], h);
			}
		}
		
		X[-r + 20] = R[-r + 20]; X[r + 20] = L[r + 20];
		for(int i = -r + 1; i < r; i++){
			X[i + 20] = min(L[i + 20], R[i + 20]);
		}
		t = 100;
		for(int i = -r; i <= r; i++){
			t = min(t, X[i + 20] + r - sqrt((r + i) * (r - i)));
		}
		printf("%lf\n", t);
	}
	
	return 0;
}