import  java.util.* ; 
import  java.util.function.* ; 
 
@FunctionalInterface
interface  VarArgsFunction< T, U>  extends  Function< T[ ] , U>  { 
    @Override
    U apply( T... args ) ; 
} 
 
class  Main { 
	public  static  void  main
( String [ ]  args
)  {  		invokeApply( ) ; 
	} 
    static  void  invokeApply( )  { 
        VarArgsFunction
< Double , List
< Double
>>  fn 
=         List< Double>  list =  invokeApply( fn, 1.0 , 2.0 , 3.0 ) ; 
    } 
    static  < T, U>  U invokeApply( VarArgsFunction< T, U>  fn,
                                T arg0, T arg1, T arg2)  { 
        return  fn.apply ( arg0, arg1, arg2) ;  // throws an exception 
    } 
} 
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLmZ1bmN0aW9uLio7CgpARnVuY3Rpb25hbEludGVyZmFjZQppbnRlcmZhY2UgVmFyQXJnc0Z1bmN0aW9uPFQsIFU+IGV4dGVuZHMgRnVuY3Rpb248VFtdLCBVPiB7CiAgICBAT3ZlcnJpZGUKICAgIFUgYXBwbHkoVC4uLiBhcmdzKTsKfQoKY2xhc3MgTWFpbiB7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgkJaW52b2tlQXBwbHkoKTsKCX0KICAgIHN0YXRpYyB2b2lkIGludm9rZUFwcGx5KCkgewogICAgICAgIFZhckFyZ3NGdW5jdGlvbjxEb3VibGUsIExpc3Q8RG91YmxlPj4gZm4gPQogICAgICAgICAgICBBcnJheXM6OmFzTGlzdDsKICAgICAgICBMaXN0PERvdWJsZT4gbGlzdCA9IGludm9rZUFwcGx5KGZuLCAxLjAsIDIuMCwgMy4wKTsKICAgIH0KICAgIHN0YXRpYyA8VCwgVT4gVSBpbnZva2VBcHBseShWYXJBcmdzRnVuY3Rpb248VCwgVT4gZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVCBhcmcwLCBUIGFyZzEsIFQgYXJnMikgewogICAgICAgIHJldHVybiBmbi5hcHBseShhcmcwLCBhcmcxLCBhcmcyKTsgLy8gdGhyb3dzIGFuIGV4Y2VwdGlvbgogICAgfQp9