#include <bits/stdc++.h>
int h, q;
std::map<int, int> sum;
double dfs(int o, int maxv) {
  if (maxv >= sum[o])
    return maxv;
  else
    return 0.5 *
           (dfs((o << 1), std::max(maxv, sum[o] - sum[(o << 1)])) +
            dfs((o << 1 | 1), std::max(maxv, sum[o] - sum[(o << 1 | 1)])));
}
int main() {
  scanf("%d%d", &h, &q);
  while (q--) {
    char ord[6];
    scanf("%s", ord);
    if (ord[0] == 'a') {
      int v, e;
      scanf("%d%d", &v, &e);
      while (v) sum[v] += e, v >>= 1;
    } else {
      printf("%.7lf\n", dfs(1, 0));
    }
  }
  return 0;
}
