#include <bits/stdc++.h>
using namespace std;
inline char nc() { return getchar(); }
inline void read(int &x) {
  char c = nc();
  int b = 1;
  for (; !(c >= '0' && c <= '9'); c = nc())
    if (c == '-') b = -1;
  for (x = 0; c >= '0' && c <= '9'; x = x * 10 + c - '0', c = nc())
    ;
  x *= b;
}
inline void read(long long &x) {
  char c = nc();
  long long b = 1;
  for (; !(c >= '0' && c <= '9'); c = nc())
    if (c == '-') b = -1;
  for (x = 0; c >= '0' && c <= '9'; x = x * 10 + c - '0', c = nc())
    ;
  x *= b;
}
inline int read(char *s) {
  char c = nc();
  int len = 1;
  for (; !(c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z'); c = nc())
    if (c == EOF) return 0;
  for (; (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z'); s[len++] = c, c = nc())
    ;
  s[len++] = '\0';
  return len - 2;
}
inline void read(char &x) {
  for (x = nc(); !(x >= 'a' && x <= 'z'); x = nc())
    ;
}
int wt, ss[19];
inline void print(int x) {
  if (x < 0) x = -x, putchar('-');
  if (!x)
    putchar(48);
  else {
    for (wt = 0; x; ss[++wt] = x % 10, x /= 10)
      ;
    for (; wt; putchar(ss[wt] + 48), wt--)
      ;
  }
}
inline void print(long long x) {
  if (x < 0) x = -x, putchar('-');
  if (!x)
    putchar(48);
  else {
    for (wt = 0; x; ss[++wt] = x % 10, x /= 10)
      ;
    for (; wt; putchar(ss[wt] + 48), wt--)
      ;
  }
}
int n;
int main() {
  read(n);
  int x = 1, ans = 1;
  for (; x <= n; x *= 2, ans++)
    ;
  print(ans - 1), puts("");
  return 0;
}
