#include using namespace std; typedef long long ll; typedef long double ld; typedef pair ii; typedef vector vi; typedef vector vvi; typedef vector vii; #define x first #define y second #define pb push_back #define eb emplace_back #define rep(i,a,b) for(auto i=(a); i<(b); ++i) #define REP(i,n) rep(i,0,n) #define all(v) begin(v), end(v) #define sz(v) ((int) (v).size()) #define rs resize #define DBG(x) cerr << __LINE__ << ": " \ << #x<< " = " << (x) << endl template ostream& operator<<(ostream &os, const vector &v) { os << "\n["; for(const T &x : v) os << x << ','; return os << "]\n"; } namespace std { template struct hash> { public: size_t operator()(const pair &p) const { size_t x = hash()(p.x), y = hash()(p.y); return x ^ (y + 0x9e3779b9 + (x<<6) + (x>>2)); } }; } void run() { ll n, i, k; cin >> n >> i >> k; i--; vector B(n, 0); ld s = ((ld) 1)/n; B[0] = s; for (ll j = n-1; j >= 1; j--) { ld g = 0; if (i == j) g = 1; ld a = (s-g)/j; B[j] = a; s += a; } ld res = ((ld) n+1)/2; for (ll j = 1; j < n; j++) { res -= B[j] * j*(j+1)/2 * pow(((ld)j)/n, k); } cout << res << endl; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout << fixed << setprecision(20); run(); return 0; }