#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std ;#define REP( i , a , b ) for ( int i = a ; i < b ; ++ i )#define FOR( i , a , b ) for ( int i = a ; i <= b ; ++ i )#define REV( i , a , b ) for ( int i = a ; i >= b ; -- i )#define CLR( a , x ) memset ( a , x , sizeof a )#define CPY( a , x ) memcpy ( a , x , sizeof a )const double eps = 1e-10 ;int sgn ( double x ) {return ( x > eps ) - ( x < -eps ) ;}int main () {double r , R ;while ( ~scanf ( "%lf%lf" , &r , &R ) ) {if ( sgn ( R - 2 * r ) < 0 ) printf ( "NO Solution!n" ) ;else {double low = 0 , high = sqrt ( 3.0 ) * R ;int cnt = 0 ;while ( high - low > eps ) {++ cnt ;double c = ( low + high ) / 2 ;double a = sqrt ( pow ( sqrt ( R * R - c * c / 4 ) + R , 2 ) + c * c / 4 ) ;if ( sgn ( pow ( ( sqrt ( r * r + pow ( a - c / 2 , 2 ) ) + r ) , 2 ) + c * c / 4 - a * a ) < 0 ) high = c ;else low = c ;}double c = low ;double a = sqrt ( pow ( sqrt ( R * R - c * c / 4 ) + R , 2 ) + c * c / 4 ) ;printf ( "%.15f %.15f %.15fn" , a , a , c ) ;}}return 0 ;}


