#include <bits/stdc++.h>   using namespace std;   using ll = long long;   double p;   bool in_memo[200 + 1][230 + 1][2][1 << 8];   double memo[200 + 1][230 + 1][2][1 << 8];   double E(int k, int lead_count, bool lead_parity, int mask) {     double& ans = memo[k][lead_count][lead_parity][mask];     if (not in_memo[k][lead_count][lead_parity][mask]) {       if (k == 0) {         ans = mask ? __builtin_ctz(mask) : 8 + (lead_parity ? 0 : lead_count);       } else {         ans = p / 100 *                   E(k - 1,                     bool((mask & (1 << 7)) >> 7) == lead_parity ? lead_count + 1                                                                 : 1,                     (mask & (1 << 7)) >> 7, (mask * 2) & 0b11111111) +               (100 - p) / 100 *                   E(k - 1,                     mask == 0b11111111 ? (lead_parity ? lead_count : 1)                                        : lead_count,                     lead_parity ^ (mask == 0b11111111), (mask + 1) & 0b11111111);       }       in_memo[k][lead_count][lead_parity][mask] = true;     }     return ans;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     int x, k;     cin >> x >> k >> p;     memset(in_memo, false, sizeof in_memo);     cout << fixed << setprecision(7)          << E(k, __builtin_ctz((x >> 8) & 1 ? (x >> 8) + 1 : x >> 8),               (x >> 8) & 1, x & 0b11111111)          <<   n ;     return 0;   }   