#include #include #include using namespace std; using namespace atcoder; using mint = modint998244353; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 4000000000000000001 long long R,K; long double get(long double h){ long double r = R; return r * r * acosl(1.0 - h/r) - (r-h) * sqrtl(2.0 * r * h - h*h); } int main(){ long double pi = acosl(-1.0); cin>>R>>K; long double S = R; S *= R; S *= pi; S /= K+1; vector ans; long double last = 0.0; rep(i,1000000){ long double ok = last,ng = 2.0*R; rep(_,50){ long double mid = (ok+ng)/2.0; if(get(mid)-get(last)<=S)ok = mid; else ng = mid; } if(ok >= R-1e-10)break; ans.push_back(-R + ok); last = ok; } int t = ans.size(); rep(i,t)ans.push_back(-ans[i]); //ans.push_back(0.0); sort(ans.begin(),ans.end()); vector ta; rep(i,ans.size()){ if(ta.size()>0 && abs(ans[i]-ta.back())<1e-11)continue; ta.push_back(ans[i]); } swap(ans,ta); rep(i,ans.size()){ cout<