/*
我们枚举每次选择最大数值的情况:m个数, 投掷n次
最大值是1: 1种
2: 2^n-1
3: 3^n-2^n
.....
m: m^n-(m-1)^n
所以最后的结果=sum((k/m)^n - ((k-1)/m)^n) (1<=k<=m)
不要这样求(k^n/m^n)数据可能会很大!
*/
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main(){
int n, m;
while(cin>>m>>n){
double sum, cur=pow(1.0/m, n), nt;
sum=cur;
for(int i=2; i<=m; ++i){
nt=pow(i*1.0/m, n);
sum+=(nt-cur)*i;
cur=nt;
}
printf("%.12lf\n", sum);
}
return 0;
}