#include<iostream>
#include<string>
using namespace std;

int main()
{
    int t1 = 0, t2 = 1, nextTerm = 0, n;

    cin >> n;

    int arr[n+1];
    arr[0]=t2;

   int i=1;

    while(nextTerm <= n)
    {

        nextTerm = t1 + t2;
        t1 = t2;
        t2 = nextTerm;
        arr[i]=nextTerm;
        i++;
    }

    char s[n];

    for(int j=1;j<=n;j++){
        s[j]='o';
    }

    for(int j=1;j<i;j++){
        s[arr[j]]='O';
    }
     for(int j=1;j<=n;j++){
       cout<<s[j];
    }

    return 0;
}


#include<iostream>
#include<string>
using namespace std;

int main()
{
    int t1 = 0, t2 = 1, nextTerm = 0, n;

    cin >> n;

    int arr[n+1];
    arr[0]=t2;

   int i=1;
    while(nextTerm <= n)
    {

        nextTerm = t1 + t2;
        t1 = t2;
        t2 = nextTerm;
        arr[i]=nextTerm;
        i++;
    }

    char s[n];

    for(int j=0;j<n;j++){
        s[j]='o';
    }

    for(int j=0;j<i;j++){
        s[arr[j]]='O';
    }
     for(int j=0;j<n;j++){
       cout<<s[j];
    }

    return 0;
}


#include <iostream>
using namespace std;

int main()
{
    int t1 = 0, t2 = 1, nextTerm = 0, n;

    cin >> n;

    int arr[n];
    arr[0]=t1;
    arr[1]=t2;
   int i=2;
    while(nextTerm <= n)
    {

        t1 = t2;
        t2 = nextTerm;
        nextTerm = t1 + t2;
        arr[i]=t1+t2;
        i++;
    }

    string s;

    for(int j=0;j<n;j++){
        s[i]='o';
    }

    for(int j=0;j<i;j++){
        s[j]='O'
    }
    cout<<s<<endl;
    return 0;
}


#include<iostream>
#include<string>
using namespace std;

int main()
{
    int t1 = 0, t2 = 1, nextTerm = 0, n;

    cin >> n;

    int arr[n];
    arr[0]=t1;
    arr[1]=t2;
   int i=2;
    while(nextTerm <= n)
    {

        t1 = t2;
        t2 = nextTerm;
        nextTerm = t1 + t2;
        arr[i]=t1+t2;
        i++;
    }

    char s[n];

    for(int j=0;j<n;j++){
        s[j]='o';
    }

    for(int j=0;j<i;j++){
        s[arr[j]]='O';
    }
     for(int j=0;j<n;j++){
       cout<<s[j];
    }

    return 0;
}


#include<iostream>
#include<string>
using namespace std;

int main()
{
    int t1 = 0, t2 = 1, nextTerm = 0, n;

    cin >> n;

    int arr[n+1];
    arr[0]=t1;
    arr[1]=t2;
   int i=2;
    while(nextTerm <= n)
    {

        nextTerm = t1 + t2;
        t1 = t2;
        t2 = nextTerm;
        arr[i]=nextTerm;
        i++;
    }

    char s[n];

    for(int j=0;j<n;j++){
        s[j]='o';
    }

    for(int j=0;j<i;j++){
        s[arr[j]]='O';
    }
     for(int j=0;j<n;j++){
       cout<<s[j];
    }

    return 0;
}


#include <iostream>
using namespace std;

int main()
{
    int t1 = 0, t2 = 1, nextTerm = 0, n;

    cin >> n;

    int arr[n];
    arr[0]=t1;
    arr[1]=t2;
   int i=2;
    while(nextTerm <= n)
    {

        t1 = t2;
        t2 = nextTerm;
        nextTerm = t1 + t2;
        arr[i]=t1+t2;
        i++;
    }

    string s;

    for(int j=0;j<n;j++){
        s[i]='o';
    }

    for(int j=0;j<i;j++){
        s[j]='O';
    }
    cout<<s<<endl;
    return 0;
}


#include <iostream>
using namespace std;

int main()
{
    int t1 = 0, t2 = 1, nextTerm = 0, n;

    cin >> n;

    int arr[n];
    arr[0]=t1;
    arr[1]=t2;
   int i=2;
    while(nextTerm <= n)
    {

        t1 = t2;
        t2 = nextTerm;
        nextTerm = t1 + t2;
        arr[i]=t1+t2;
        i++;
    }

    string s;

    for(int j=0;j<n;j++){
        s[i]='o';
    }

    for(int j=0;j<i;j++){
        s[arr[j]]='O';
    }
    cout<<s<<endl;
    return 0;
}


#include <iostream>
using namespace std;

int main()
{
    int t1 = 0, t2 = 1, nextTerm = 0, n;

    cin >> n;

    int arr[n];
    arr[0]=t1;
    arr[1]=t2;
   int i=2;
    while(nextTerm <= n)
    {

        t1 = t2;
        t2 = nextTerm;
        nextTerm = t1 + t2;
        arr[i]=t1+t2;
        i++
    }

    string s;

    for(int j=0;j<n;j++){
        s[i]='o';
    }

    for(int j=0;j<i;j++){
        s[j]='O'
    }
    cout<<s<<endl;
    return 0;
}


#include<iostream>
#include<cmath>
#include<map>
#include<algorithm>
using namespace std;
#define ll long long int
ll n,fib[10000],a[10000];
int main(){
	cin>>n;
	fib[0]=1;
	fib[1]=1;
	for(int i=1; i<=n; i++){
		fib[i]=fib[i-1]+fib[i-2];
		a[fib[i]]=1;
	}
	for(int i=1; i<=n; i++){
		if(a[i]==1) cout<<"O";
		else cout<<"o";
	}

}


#include<iostream>
#include<cmath>
#include<map>
#include<algorithm>
using namespace std;
#define ll long long int
ll n,fib[10000],a[10000];
int main(){
	cin>>n;
	fib[0]=1;
	fib[1]=1;
	for(int i=1; i<=n; i++){
		fib[i]=fib[i-1]+fib[i-2];
		if(fib[i]<=n)a[fib[i]]=1;
	}
	for(int i=1; i<=n; i++){
		if(a[i]==1) cout<<"O";
		else cout<<"o";
	}

}


#include<iostream>
#include<cmath>
#include<map>
#include<algorithm>
using namespace std;
#define ll long long int
ll n,fib[10000],a[10000];
int main(){
	cin>>n;
	fib[0]=1;
	fib[1]=1;
	for(int i=1; i<=n; i++){
		fib[i]=fib[i-1]+fib[i-2];
		if(fib[i]<n)a[fib[i]]=1;
	}
	for(int i=1; i<=n; i++){
		if(a[i]==1) cout<<"O";
		else cout<<"o";
	}

}


#include<iostream>
#include<cmath>
#include<map>
#include<algorithm>
using namespace std;
#define ll long long int
ll n,fib[10000],a[10000];
int main(){
	cin>>n;
	fib[0]=1;
	fib[1]=1;
	int i=2;
	while(fib[i-1]<=n){
		fib[i]=fib[i-1]+fib[i-2];
		i++;
	}
	for(int i=1; i<=n; i++){
	 a[fib[i]]=1;
	}
	for(int i=1; i<=n; i++){
		if(a[i]==1) cout<<"O";
		else cout<<"o";
	}

}


#include<bits/stdc++.h>
#define lli long long int
#define pb push_back
using namespace std;
vector <int>V;
int main ()
{
int n, a = 1, b = 1 , cnt =1;
    cin >> n;
    for ( int i = 1; i <= n; i ++ ){
            if( i==a ){
        cout<<"O";
        a = a + b;
        b = a - b;
            }
            else
                cout<<"o";

    }

}


#include <iostream>
#include <cmath>
#include <math.h>
#include <algorithm>
#include <cstdio>
#include <vector>
#define lli long long int
#define pb push_back
using namespace std;
vector <int>V;
int main ()
{

int n, a = 1, b = 1 , cnt =1;
    cin >> n;
    for ( int i = 1; i <= n; i ++ ){
            V.pb (b);
        a = a + b;
        b = a - b;

    }
for(int i = 1 ; i <= n; i ++)
    {
        if(i == V[cnt])
        {
            cout << "O";
            cnt++;
        }
        else
            cout << "o";
    }
}


#include <bits/stdc++.h>
#include <vector>
using namespace std;
vector <int>V
int main ()
{

int n, a = 1, b = 1 , cnt=1;
    cin >> n;
    for ( int i = 1; i <= n; i ++ ){
            V.pb (b);
        a = a + b;
        b = a - b;

    }
for(int i = 1 ; i <= n; i ++)
    {
        if(i == V[cnt])
        {
            cout << "O";
            cnt++;
        }
        else
            cout << "o";
    }
}


#include <iostream>
#include <cmath>
#include <math.h>
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
vector <int>V;
int main ()
{

int n, a = 1, b = 1 , cnt =1;
    cin >> n;
    for ( int i = 1; i <= n; i ++ ){
            V.pb (b);
        a = a + b;
        b = a - b;

    }
for(int i = 1 ; i <= n; i ++)
    {
        if(i == V[cnt])
        {
            cout << "O";
            cnt++;
        }
        else
            cout << "o";
    }
}


#include <cmath>
#include <math.h>
#include <algorithm>
#include <cstdio>
#include <vector>
#define lli long long int
#define pb push_back
using namespace std;
vector <int>V;
int main ()
{

int n, a = 1, b = 1 , cnt =1;
    cin >> n;
    for ( int i = 1; i <= n; i ++ ){
            if( i==a ){
        cout<<"0";
        a = a + b;
        b = a - b;
            }
            else
                cout<<"o";

    }

}


#include <iostream>
#include <cmath>
#include <math.h>
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
int main ()
{

int n, a = 1, b = 1 , cnt =1;
    cin >> n;
    for ( int i = 1; i <= n; i ++ ){
            V.pb (b);
        a = a + b;
        b = a - b;

    }
for(int i = 1 ; i <= n; i ++)
    {
        if(i == V[cnt])
        {
            cout << "O";
            cnt++;
        }
        else
            cout << "o";
    }
}


#include <bits/stdc++.h>
using namespace std;
vector <int>V;
int main ()
{

int n, a = 1, b = 1 , cnt =1;
    cin >> n;
    for ( int i = 1; i <= n; i ++ ){
            V.push_back (b);
        a = a + b;
        b = a - b;

    }
for(int i = 1 ; i <= n; i ++)
    {
        if(i == V[cnt])
        {
            cout << "O";
            cnt++;
        }
        else
            cout << "o";
    }
}


#include<bits/stdc++.ha>
#define lli long long int
#define pb push_back
using namespace std;
vector <int>V;
int main ()
{
int n, a = 1, b = 1 , cnt =1;
    cin >> n;
    for ( int i = 1; i <= n; i ++ ){
            if( i==a ){
        cout<<"0";
        a = a + b;
        b = a - b;
            }
            else
                cout<<"o";

    }

}


#include<bits/stdc++.h>
#define lli long long int
#define pb push_back
using namespace std;
vector <int>V;
int main ()
{
int n, a = 1, b = 1 , cnt =1;
    cin >> n;
    for ( int i = 1; i <= n; i ++ ){
            if( i==a ){
        cout<<"0";
        a = a + b;
        b = a - b;
            }
            else
                cout<<"o";

    }

}


#include<bits/stdc++.h>

using namespace std;
int fibonacci(int n)
{
    if(n<=1)
        return n;
    return fibonacci(n-1)+fibonacci(n-2);
}
int main()
{
    int n,i,flag=0;
    cin>>n;
    int a[20]= {0};
    for( i=1; i<=17; i++)
    {
        a[i]=fibonacci(i);
    }
    for( i=1; i<=n; i++)
    {
        flag=0;
        if(i==1||i==2)
        {
            cout<<"O";
            flag=1;
        }
        else
        {
            for(int j=1; j<=17; j++)
            {
                if(i==a[j])
                {
                    cout<<"O";
                    flag=1;
                }
            }
        }
        if(flag==0){
            cout<<"o";
        }

    }
    cout<<endl;
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main()
{
    int i,j,fib[17]={0},n,flag=0;
    scanf("%d",&n);
    fib[0]=1;
    fib[1]=1;
    for(i=2; i<=17; i++)
    {
        fib[i]=fib[i-1]+fib[i-2];
    }
    for(i=1; i<=n; i++)
    {
        flag=0;
        if(i==1 || i==2)
        {
            printf("O");
            flag=1;
        }
        else
        {
            for(j=1; j<=17; j++)
            {
                if(fib[j]==i)
                {
                    printf("O");
                    flag=1;
                }
            }
        }
        if(flag==0)
        {
            printf("o");
        }
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main()
{
    int i,j,fib[17],n,flag=0;
    scanf("%d",&n);
    fib[0]=1;
    fib[1]=1;
    for(i=2; i<=17; i++)
    {
        fib[i]=fib[i-1]+fib[i-2];
    }
    for(i=1; i<=n; i++)
    {
        flag=0;
        if(i==1 || i==2)
        {
            printf("O");
            flag=1;
        }
        else
        {
            for(j=1; j<=17; j++)
            {
                if(fib[j]==i)
                {
                    printf("O");
                    flag=1;
                }
            }
        }
        if(flag==0)
        {
            printf("o");
        }
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main()
{
    int i,j,fib[17]= {0},n,flag=0;
    scanf("%d",&n);
    fib[0]=1;
    fib[1]=1;
    for(i=2; i<=17; i++)
    {
        fib[i]=fib[i-1]+fib[i-2];
    }
    for( i=1; i<=n; i++)
    {
        flag=0;
        if(i==1||i==2)
        {
            cout<<"O";
            flag=1;
        }
        else
        {
            for(int j=1; j<=17; j++)
            {
                if(i==fib[j])
                {
                    cout<<"O";
                    flag=1;
                }
            }
        }
        if(flag==0)
        {
            cout<<"o";
        }

    }
    cout<<endl;
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int fibonacci(int n)
{
    if(n<=1)
        return n;
    return fibonacci(n-1)+fibonacci(n-2);
}
int main()
{
    int i,j,fib[17]= {0},n,flag=0;
    scanf("%d",&n);
    fib[0]=1;
    fib[1]=1;
    for(i=1; i<=17; i++)
    {
        //fib[i]=fib[i-1]+fib[i-2];
        fib[i]=fibonacci(i);
    }
    for( i=1; i<=n; i++)
    {
        flag=0;
        if(i==1||i==2)
        {
            cout<<"O";
            flag=1;
        }
        else
        {
            for(int j=1; j<=17; j++)
            {
                if(i==fib[j])
                {
                    cout<<"O";
                    flag=1;
                }
            }
        }
        if(flag==0)
        {
            cout<<"o";
        }

    }
    //cout<<endl;
    return 0;
}


#include <iostream>
using namespace std;
int main(){
int f1=1,f2=1,t=1,n;
char s[100];
cin>>n;
s[1]='O';
while(n>=t)
{
    f1=f2;
    f2=t;
    t=f1+f2;
    s[t]='O';}
for(int i=1;i<=n;i++){
    if(s[i]!='O')
        s[i]='o';
         }
for(int i=1;i<=n;i++){
    cout<<s[i];
         }

return 0;


#include <iostream>
using namespace std;
int main(){
int f1=1,f2=1,t=1,n;
char s[1001];
cin>>n;
s[1]='O';
while(n>=t)
{
    f1=f2;
    f2=t;
    t=f1+f2;
    s[t]='O';}
for(int i=1;i<=n;i++){
    if(s[i]!='O')
        s[i]='o';
         cout<<s[i];
         }

cout<<endl;
return 0;

}


#include <iostream>
using namespace std;
int main(){
int f1=1,f2=1,t=1,n;
char s[1000];
cin>>n;
s[1]='O';
while(n>=t)
{
    f1=f2;
    f2=t;
    t=f1+f2;
    s[t]='O';}
for(int i=1;i<=n;i++){
    if(s[i]!='O')
        s[i]='o';
         cout<<s[i];
         }

cout<<endl;
return 0;

}


#include <iostream>
using namespace std;
int main(){
int f1=1,f2=1,t=1,n;
char s[100];
cin>>n;
s[1]='O';
while(n>=t)
{
    f1=f2;
    f2=t;
    t=f1+f2;
    s[t]='O';}
for(int i=1;i<=n;i++){
    if(s[i]!='O')
        s[i]='o';
         cout<<s[i];
         }

cout<<endl;
return 0;

}


#include <iostream>
using namespace std;
int main(){
int f1=1,f2=1,t=1,n;
char s[10000];
cin>>n;
s[1]='O';
while(n>=t)
{
    f1=f2;
    f2=t;
    t=f1+f2;
    s[t]='O';}
for(int i=1;i<=n;i++){
    if(s[i]!='O')
        s[i]='o';
         cout<<s[i];
         }

cout<<endl;
return 0;

}


#include <iostream>
using namespace std;
int main(){
int f1=1,f2=1,t=1,n;
char s[100];
cin>>n;
s[1]='O';
while(n>=t)
{
    f1=f2;
    f2=t;
    t=f1+f2;
    s[t]='O';}
for(int i=1;i<=n;i++){
    if(s[i]!='O')
        s[i]='o';
         }
for(int i=1;i<=n;i++){
    cout<<s[i];
         }
cout<<endl;
return 0;

}


#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n, i, j;
    char s[1010];
    vector < int > f;

    f.push_back(1);
    f.push_back(1);

    cin >> n;

    for(i = 0; i < n; i++) s[i] = 'o';

    for(i = 2; i < n; i++){
        f.push_back(f[i - 1] + f[i - 2]);
        if(f[i] > n) break;
    }

    for(i = 0; i < f.size(); i++){
        s[f[i] - 1] = 'O';
    }

    for(i = 0; i < n; i++) cout << s[i];

    cout << endl;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;

int f[10000];

int main()
{
    int n, i, j;

    f[1] = 1;
    f[2] = 1;

    cin >> n;

    for(i = 3; i <= n; i++){
        f[i] = f[i - 1] + f[i - 2];
    }

    for(i = 1; i <= n; i++){
        for(j = 1; j <= n; j++){
            if(i == f[j]){
                cout << 'O';
                break;
            }
        }

        if(j > n) cout << 'o';
    }

    cout << endl;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n, i, j;
    char s[1010];
    vector < int > f;

    f.push_back(1);
    f.push_back(1);

    cin >> n;

    for(i = 0; i < n; i++) s[i] = 'o';

    for(i = 2; i < n; i++){
        f.push_back(f[i - 1] + f[i - 2]);
        if(f[i] > n) break;
    }

    for(i = 0; i < f.size() - 1; i++){
        s[f[i] - 1] = 'O';
    }

    for(i = 0; i < n; i++) cout << s[i];

    cout << endl;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n, i, j;
    char s[1010];
    vector < int > f;

    f.push_back(1);
    f.push_back(1);

    cin >> n;

    for(i = 0; i < n; i++) s[i] = 'o';

    for(i = 2; i < n; i++){
        f.push_back(f[i - 1] + f[i - 2]);
        if(f[i] > n) break;
    }

    for(i = 1; i < f.size() - 1; i++){
        s[f[i] - 1] = 'O';
    }

    for(i = 0; i < n; i++) cout << s[i];

    cout << endl;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n, i, j;
    char s[1010];
    vector < int > f;

    f.push_back(1);
    f.push_back(1);

    cin >> n;

    for(i = 1; i <= n; i++) s[i] = 'o';

    for(i = 2; i < n; i++){
        f.push_back(f[i - 1] + f[i - 2]);
        if(f[i] > n) break;
    }

    for(i = 0; i < f.size(); i++){
        s[f[i]] = 'O';
    }

    for(i = 1; i <= n; i++) cout << s[i];

    cout << endl;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n, i, j;
    char s[10010];
    vector < int > f;

    f.push_back(1);
    f.push_back(1);

    cin >> n;

    for(i = 0; i < n; i++) s[i] = 'o';

    for(i = 2; i <= n; i++){
        f.push_back(f[i - 1] + f[i - 2]);
        if(f[i] > n) break;
    }

    for(i = 0; i < f.size(); i++){
        s[f[i] - 1] = 'O';
    }

    for(i = 0; i < n; i++) cout << s[i];

    cout << endl;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n, i, j;
    char s[1010];
    vector < int > f;

    f.push_back(1);
    f.push_back(1);

    cin >> n;

    if(n == 2){
        cout << "OO" << endl;
        return 0;
    }

    for(i = 0; i < n; i++) s[i] = 'o';

    for(i = 2; i <= n; i++){
        f.push_back(f[i - 1] + f[i - 2]);
        if(f[i] > n) break;
    }

    for(i = 0; i < f.size() - 1; i++){
        s[f[i] - 1] = 'O';
    }

    for(i = 0; i < n; i++) cout << s[i];

    cout << endl;

    return 0;
}


#include<iostream>
using namespace std;
int main()
{
	int i,j,k,n,m,a,b,d;
	int c[1000]={1,1};
	cin>>n;
	a=1;
	b=1;
	for(i=3;i<n;i++)
	{
		d=a+b;
		c[i]=d;
		a=b;
		b=d;
	}
	for(i=1;i<=n;i++)
	{
		m=0;
		for(j=0;j<n;j++)
		{
			if(i==c[j])
			{
				cout<<'O';
				m=1;
				break;
			}
		}
		if(m==0)
		{
			cout<<'o';
		}
	}
	return 0;
}


#include <iostream>
using namespace std;

int main()
{
    int i = 0, j = 0, n = 0, num[100] = {1, 1};
    cin >> n;
    for(i = 2; i <= 16; i++)
    {
        num[i] = num[i - 1] + num[i - 2];
    }
    for(i = 1; i <= n; i++)
    {
        for(j = 0; j <= 16; j++)
        {
            if(i == num[j])
            {
                cout << "O";
                break;
            }
            if(num[j] > i)
            {
                cout << "o";
                break;
            }
        }
    }

return 0;
}


//
//  main.cpp
//  20190730lesson
//
//  Created by Priscilla Leang on 7/30/19.
//  Copyright © 2019 Priscilla Leang. All rights reserved.
//

#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
    int x, y, m;
    bool b1 = false;
    /*
    m = 0;
    cin>> x;
    for (int i = 1; i<= x; i+=2){  //only odd numbers
        y = 0;
        for(int j = 1; j <= x; j++){
            if (i % j ==0){
                y++;
            }
        }
        if (y == 8){
            m++;
        }

    }
    cout << m;
    */
    //next porblem

    /*

    cin >> x >> y;
    int a1[x][2];
    m = 1000;

    for (int i = 0; i< x; i++){
        for (int j = 0; j < 2; j++){
            cin>> a1[i][j];
        }
    }
    for (int i = 0; i < x; i++){
        if (a1[i][1] <= y && a1[i][0] <= m){
            b1 = true;

            m = a1[i][0];
        }
    }

    if(b1 == false){
        cout << "TLE";
    }
    else {
        cout << m;
    }

     */

    //next problem

    string s, t, v, q;
    /*
    b1 = false;
    cin >> s>> t;
    v = "";

    q = s;
    if (s == t){
        b1 = true;
    }
    for (int i = 1; i < s.length(); i++){
        v = "";
        v+= s[s.length() - 1];
        for (int j = 0; j<s.length() - 1; j++){
            v+= s[j];

        }

        if (v == t){
            b1 = true;
        }
        s = v;
    }

    if (b1 == true){
        cout << "Yes";
    }
    else {
        cout << "No";
    }

     */

    //next problem
    b1 = false;
    cin >> x;
    char a2[x + 2];
    s = "";

    for (int i = 0; i< x + 2; i++){
        if (i == 0 || i == 1){
            a2[i] = 1;
        }
        else{
            a2[i] = a2[i - 2] + a2[i-1];
        }
    }
    for (int i = 1; i <= x; i++){
        b1 =false;
        for (int j = 0; j < x+2; j++){
            if (i == a2[j]){

                b1 = true;
                break;
            }
        }
        if (b1 == true){
            cout << "O";
        }
        else {
            cout << "o";
        }

    }

    return 0;
}


#include<iostream>
using namespace std;
int f(int b)
{
	if(b==0)  return 0;
	if(b==1)  return 1;
	if(b>=2)  return f(b-2)+f(b-1);
}
int main()
{
	int i,j,k,n,m;
	int c[1000];
	cin>>n;
	for(i=0;i<n;i++)
	{
		c[i]=f(i);
	}
	for(i=1;i<=n;i++)
	{
		m=0;
		for(j=0;j<n;j++)
		{
			if(i==c[j])
			{
				cout<<'O';
				m=1;
				break;
			}
		}
		if(m==0)
		{
			cout<<'o';
		}
	}
	return 0;
}


///Abdurasul
/*
a b c
a c b
b a c
b c a
c a b
c b a
*/
#include <bits/stdc++.h>

using namespace std;

void seti(){
    int n, l = 2, s;
    cin >> n;
    vector <int64_t> a;
    a.push_back(1);
    a.push_back(1);
    for(int i = 2; i < n; i++){
        a.push_back(a[i - 1] + a[i - 2]);
    }
    for(int i = 0; i < n; i++){
        s = 0;
        for(int j = 1; j <= n; j++){
            if(a[j] == (i + 1)){cout << "O";s = 1;}
        }
        if(s == 0) cout << "o";
    }
}

int main(){
    //int k;
    //cin >> k;
    //for(int i = 0; i < k; i++){
    seti();
    //}
    return 0;
}


///Abdurasul
/*
a b c
a c b
b a c
b c a
c a b
c b a
*/
#include <bits/stdc++.h>

using namespace std;

void seti(){
    int n, l = 2, s;
    cin >> n;
    vector <int64_t> a;
    a.push_back(1);
    a.push_back(1);
    for(int i = 2; i < n; i++){
        a.push_back(a[i - 1] + a[i - 2]);
    }
    if(n == 2){cout << "OO";return;}
    for(int i = 0; i < n; i++){
        s = 0;
        for(int j = 1; j <= n; j++){
            if(a[j] == (i + 1)){cout << "O";s = 1;}
        }
        if(s == 0) cout << "o";
    }
}

int main(){
    //int k;
    //cin >> k;
    //for(int i = 0; i < k; i++){
    seti();
    //}
    return 0;
}


///Abdurasul
/*
a b c
a c b
b a c
b c a
c a b
c b a
*/
#include <bits/stdc++.h>

using namespace std;

void seti(){
    int n, l = 2, s;
    cin >> n;
    vector <int64_t> a;
    a.push_back(1);
    a.push_back(1);
    for(int i = 2; i < n + 1; i++){
        a.push_back(a[i - 1] + a[i - 2]);
    }
    for(int i = 0; i < n; i++){
        s = 0;
        for(int j = 1; j <= n; j++){
            if(a[j] == (i + 1)){cout << "O";s = 1;}
        }
        if(s == 0) cout << "o";
    }
}

int main(){
    //int k;
    //cin >> k;
    //for(int i = 0; i < k; i++){
    seti();
    //}
    return 0;
}


///Abdurasul
/*
a b c
a c b
b a c
b c a
c a b
c b a
*/
#include <bits/stdc++.h>

using namespace std;

void seti(){
    int n, l = 2, s;
    cin >> n;
    vector <int64_t> a;
    a.push_back(1);
    a.push_back(1);
    for(int i = 2; i < n; i++){
        a.push_back(a[i - 1] + a[i - 2]);
    }
    if(n == 2){cout << "OO";return;}
    else if(n == 3){cout << "OOO";return;}
    for(int i = 0; i < n; i++){
        s = 0;
        for(int j = 1; j <= n; j++){
            if(a[j] == (i + 1)){cout << "O";s = 1;}
        }
        if(s == 0) cout << "o";
    }
}

int main(){
    //int k;
    //cin >> k;
    //for(int i = 0; i < k; i++){
    seti();
    //}
    return 0;
}


///Abdurasul
/*
a b c
a c b
b a c
b c a
c a b
c b a
*/
#include <bits/stdc++.h>

using namespace std;

void seti(){
    int n, l = 2, s;
    cin >> n;
    vector <int64_t> a;
    a.push_back(1);
    a.push_back(1);
    for(int i = 2; i < n; i++){
        a.push_back(a[i - 1] + a[i - 2]);
    }
    if(n == 2){cout << "OO";return;}
    for(int i = 2; i < n; i++){
        s = 0;
        for(int j = 1; j <= n; j++){
            if(a[j] == (i + 1)){cout << "O";s = 1;}
        }
        if(s == 0) cout << "o";
    }
}

int main(){
    //int k;
    //cin >> k;
    //for(int i = 0; i < k; i++){
    seti();
    //}
    return 0;
}


///Abdurasul
/*
a b c
a c b
b a c
b c a
c a b
c b a
*/
#include <bits/stdc++.h>

using namespace std;

void seti(){
    int n, l = 2, s;
    cin >> n;
    vector <int64_t> a;
    a.push_back(1);
    a.push_back(1);
    for(int i = 2; i < n; i++){
        a.push_back(a[i - 1] + a[i - 2]);
    }
    for(int i = 0; i < n; i++){
        s = 0;
        for(int j = 1; j < n; j++){
            if(a[j] == (i + 1)){cout << "O";s = 1;}
        }
        if(s == 0) cout << "o";
    }
}

int main(){
    //int k;
    //cin >> k;
    //for(int i = 0; i < k; i++){
    seti();
    //}
    return 0;
}


#include<bits/stdc++.h>
using namespace std;

const int N = 1005;
int n;
bool fib[N]={0};

void init(){
	int fs=0, sd=1;
	while(fs<N){
		fib[fs]=true;
		sd+=fs;
		fs=sd-fs;
	}
}

int main(){
	init();

	cin>>n;
	for(int i=1; i<=n; i++){
		if(fib[i]==false){
			cout<<'o';
		}
		else cout<<'O';
	}
}


#include<bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;

int main(){
    int n;
    cin >> n;
    vector<int> v(10000+5, 0);
    vector<int> v1(10000+5, 0);
    v[0] = 0, v[1] = 1, v[2] = 1;
    v1[0] = 0, v1[1] = 1;
    for(int i = 3; ; i++){
        v[i] = v[i-1] + v[i-2];
        v1[v[i]] = 1;
        if(v[i] > n) break;
    }
    for(int i = 1; i <= n; i++){
        if(v1[i]) cout << 'O';
        else cout << 'o';
    }
    cout << endl;

    return 0;
}


#include<bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;

int main(){
    int n;
    cin >> n;
    vector<int> v(1000+5, 0);
    vector<int> v1(1000+5, 0);
    v[0] = 0, v[1] = 1, v[2] = 1;
    v1[0] = 0, v1[1] = 1;
    for(int i = 3; ; i++){
        v[i] = v[i-1] + v[i-2];
        v1[v[i]] = 1;
        if(v[i] > n) break;
    }
    for(int i = 1; i <= n; i++){
        if(v1[i]) cout << 'O';
        else cout << 'o';
    }
    cout << endl;

    return 0;
}


#include<bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;

int main(){
    int n;
    cin >> n;
    //vector<int> v(n+5, 0);
    //vector<int> v1(n+5, 0);
    int v[n+5], v1[n+5];
    for(int i = 0; i < 1005; i++) v[i] = 0, v1[i] = 0;
    v[0] = 0, v[1] = 1, v[2] = 1;
    v1[0] = 0, v1[1] = 1;
    for(int i = 3; ; i++){
        v[i] = v[i-1] + v[i-2];
        v1[v[i]] = 1;
        if(v[i] > n) break;
    }
    for(int i = 1; i <= n; i++){
        if(v1[i]) cout << 'O';
        else cout << 'o';
    }
    cout << endl;

    return 0;
}


#include<bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;

int main(){
    int n;
    cin >> n;
    //vector<int> v(n+5, 0);
    //vector<int> v1(n+5, 0);
    int v[n+5], v1[n+5];
    for(int i = 0; i < n+5; i++) v[i] = 0, v1[i] = 0;
    v[0] = 0, v[1] = 1, v[2] = 1;
    v1[0] = 0, v1[1] = 1;
    for(int i = 3; ; i++){
        v[i] = v[i-1] + v[i-2];
        v1[v[i]] = 1;
        if(v[i] > n) break;
    }
    for(int i = 1; i <= n; i++){
        if(v1[i]) cout << 'O';
        else cout << 'o';
    }
    cout << endl;

    return 0;
}


#include<bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;

int main(){
    int n;
    cin >> n;
    //vector<int> v(n+5, 0);
    //vector<int> v1(n+5, 0);
    int v[n+5], v1[n+5];
    for(int i = 0; i < 10000; i++) v[i] = 0, v1[i] = 0;
    v[0] = 0, v[1] = 1, v[2] = 1;
    v1[0] = 0, v1[1] = 1;
    for(int i = 3; ; i++){
        v[i] = v[i-1] + v[i-2];
        v1[v[i]] = 1;
        if(v[i] > n) break;
    }
    for(int i = 1; i <= n; i++){
        if(v1[i]) cout << 'O';
        else cout << 'o';
    }
    cout << endl;

    return 0;
}


  /******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <iostream>
#include<string>
#include<math.h>
using namespace std;

bool isPerfectSquare(int);
bool isFibonacci(int);

 bool isFibonacci(int n)
{
    // n is Fibinacci if one of 5*n*n + 4 or 5*n*n - 4 or both
    // is a perferct square
    return isPerfectSquare(5*n*n + 4) ||
           isPerfectSquare(5*n*n - 4);
}

bool isPerfectSquare(int x)
{
    int s = sqrt(x);
    return (s*s == x);
}

int main()
{

  int n;
  string s1;
  string s2="";
  cin>>n;

  for(int i=1;i<=n;i++){
      s1[i-1]='o';
      if(isFibonacci(i)){
          s1[i-1]='O';
      }
      s2+=s1[i-1];
  }

 cout<<s2;

    return 0;
}


  /******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <iostream>
#include<string>
#include<math.h>
using namespace std;

bool isPerfectSquare(int);
bool isFibonacci(int);

 bool isFibonacci(int n)
{
    // n is Fibinacci if one of 5*n*n + 4 or 5*n*n - 4 or both
    // is a perferct square
    return isPerfectSquare(5*n*n + 4) ||
           isPerfectSquare(5*n*n - 4);
}

bool isPerfectSquare(int x)
{
    int s = sqrt(x);
    return (s*s == x);
}

int main()
{

  int n;
  string s1,s2="";
  cin>>n;

  for(int i=1;i<=n;i++){
      if(isFibonacci(i)){
          s1[i-1]='O';
      }
      else{
          s1[i-1]='o';
      }
      s2+=s1[i];
  }

  for(int i=0;i<n;i++){
      cout<<s1[i];
  }

    return 0;
}


  /******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <iostream>
#include<string>
#include<math.h>
using namespace std;

bool isPerfectSquare(int);
bool isFibonacci(int);

 bool isFibonacci(int n)
{
    // n is Fibinacci if one of 5*n*n + 4 or 5*n*n - 4 or both
    // is a perferct square
    return isPerfectSquare(5*n*n + 4) ||
           isPerfectSquare(5*n*n - 4);
}

bool isPerfectSquare(int x)
{
    int s = sqrt(x);
    return (s*s == x);
}

int main()
{

  int n;
  string s1,s2="";
  cin>>n;

  for(int i=1;i<=n;i++){
      s1[i-1]='o';
      if(isFibonacci(i)){
          s1[i-1]='O';
      }
      s2+=s1[i-1];
  }

 cout<<s2;

    return 0;
}


  /******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <iostream>
#include<string>
#include<math.h>
using namespace std;

bool isPerfectSquare(int);
bool isFibonacci(int);

 bool isFibonacci(int n)
{
    // n is Fibinacci if one of 5*n*n + 4 or 5*n*n - 4 or both
    // is a perferct square
    return isPerfectSquare(5*n*n + 4) ||
           isPerfectSquare(5*n*n - 4);
}

bool isPerfectSquare(int x)
{
    int s = sqrt(x);
    return (s*s == x);
}

int main()
{

  int n;
  string s1[1000];
  string s2="";
  cin>>n;

  for(int i=1;i<=n;i++){
      s1[i-1]='o';
      if(isFibonacci(i)){
          s1[i-1]='O';
      }
      s2+=s1[i-1];
  }

 cout<<s2;

    return 0;
}


  /******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <iostream>
#include<string>
#include<math.h>
using namespace std;

bool isPerfectSquare(int);
bool isFibonacci(int);

 bool isFibonacci(int n)
{
    // n is Fibinacci if one of 5*n*n + 4 or 5*n*n - 4 or both
    // is a perferct square
    return isPerfectSquare(5*n*n + 4) ||
           isPerfectSquare(5*n*n - 4);
}

bool isPerfectSquare(int x)
{
    int s = sqrt(x);
    return (s*s == x);
}

int main()
{

  int n;
  char s1[1000];
  string s2="";
  cin>>n;

  for(int i=1;i<=n;i++){
      s1[i-1]='o';
      if(isFibonacci(i)){
          s1[i-1]='O';
      }
      s2+=s1[i-1];
  }

 cout<<s2;

    return 0;
}


  /******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <iostream>
#include<string>
#include<math.h>
using namespace std;

bool isPerfectSquare(int);
bool isFibonacci(int);

 bool isFibonacci(int n)
{
    // n is Fibinacci if one of 5*n*n + 4 or 5*n*n - 4 or both
    // is a perferct square
    return isPerfectSquare(5*n*n + 4) ||
           isPerfectSquare(5*n*n - 4);
}

bool isPerfectSquare(int x)
{
    int s = sqrt(x);
    return (s*s == x);
}

int main()
{

  int n;
  string s1,s2="";
  cin>>n;

  for(int i=1;i<=n;i++){
      if(isFibonacci(i)){
          s1[i-1]='O';
      }
      else{
          s1[i-1]='o';
      }
      s2+=s1[i-1];
  }

 cout<<s2;

    return 0;
}


#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
 long long int n,i;
  scanf("%lld",&n);
  long long int a[17];
  long long int  t1=0,t2=1,nextTerm;
  for (i = 1; i <= 17; ++i)
    {
        a[i-1]=t1;
        nextTerm = t1 + t2;
        t1 = t2;
        t2 = nextTerm;
    }
  for(i=1;i<=n;i++)
  {
    if(i==1 || i==2 ||i==3)
    {
      {
       printf("O");
      }
    }
    else
    {
      if(binary_search(a,a+n,i))
      {
       printf("O");
      }
      else
      {
        printf("o");
      }
    }
  }
}


#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
 long long int n,i;
  scanf("%lld",&n);
  long long int a[17];
  long long int  t1=0,t2=1,nextTerm;
  for (i = 1; i <= 17; ++i)
    {
        a[i-1]=t1;
        printf("%lld\n",a[i-1]);
        nextTerm = t1 + t2;
        t1 = t2;
        t2 = nextTerm;
    }
  for(i=1;i<=n;i++)
  {
    if(i==1 || i==2 ||i==3)
    {
      {
       printf("O");
      }
    }
    else
    {
      if(binary_search(a,a+n,i))
      {
       printf("O");
      }
      else
      {
        printf("o");
      }
    }
  }
}


#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
 long long int n,i;
  scanf("%lld",&n);
  long long int a[n];
  long long int  t1=0,t2=1,nextTerm;
  for (i = 1; i <= n; ++i)
    {
        a[i-1]=t1;
        nextTerm = t1 + t2;
        t1 = t2;
        t2 = nextTerm;
    }
  for(i=1;i<=n;i++)
  {
    if(i==1 || i==2 ||i==3)
    {
      {
       printf("O");
      }
    }
    else
    {
      if(binary_search(a,a+n,i))
      {
       printf("O");
      }
      else
      {
        printf("o");
      }
    }
  }
}


#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
 long long int n,i;
  scanf("%lld",&n);
  long long int a[17];
  long long int  t1=0,t2=1,nextTerm;
  for (i = 1; i <= 17; i++)
    {
        a[i-1]=t1;
        nextTerm = t1 + t2;
        t1 = t2;
        t2 = nextTerm;
    }
  for(i=1;i<=n;i++)
  {
    if(i==1 || i==2 ||i==3)
    {
      {
       printf("O");
      }
    }
    else
    {
      if(binary_search(a,a+17,i))
      {
       printf("O");
      }
      else
      {
        printf("o");
      }
    }
  }
}


#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
  int n,i;
  scanf("%d",&n);
  int a[n];
  int t1=0,t2=1,nextTerm;
  for (i = 1; i <= n; ++i)
    {
        a[i-1]=t1;
        nextTerm = t1 + t2;
        t1 = t2;
        t2 = nextTerm;
    }
  for(i=1;i<=n;i++)
  {
    if(i==1 || i==2 ||i==3)
    {
      {
       printf("O");
      }
    }
    else
    {
      if(binary_search(a,a+n,i))
      {
       printf("O");
      }
      else
      {
        printf("o");
      }
    }
  }
}


#include <bits/stdc++.h>
using namespace std;
int n;
int fibo(int n){
	int dp[n + 1];
	dp[0] = 0;
	dp[1] = 1;
	for (int i = 2; i <= n; ++i)
		dp[i] = dp[i - 1] + dp[i - 2];
	return dp[n];
}
void solve(){
	char ans[n + 1];
	for (int i = 1; i <= n; ++i)
		ans[i] = 'o';
	int cnt = 1;
	while (fibo(cnt) < n){
		ans[fibo(cnt)] = 'O';
		cnt++;
	}
	for (int i = 1; i <= n; ++i)
		cout << ans[i];
	return;
}

int main (){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);

//	freopen("DEBUG.INP", "r", stdin);
	cin >> n;
	solve();
	return 0;
}


#include <iostream>
using namespace std;
int fib(int n){
    if (n == 0) return 0;
    else if (n <= 2) return 1;
    else return fib(n - 2) + fib(n - 1);
}
int main () {
    int n;
    cin >> n;
    char s[1000];
    //for (int i = 0; i < 4; ++i) s[i] = 'O';
    for (int i = 0; i < n; ++i) s[i] = 'o';
    //s[0] = 'O';
    for (int i = 0; i < n; ++i)
        s[fib(i) - 1] = 'O';
    for (int i = 0; i < n; ++i)
        cout << s[i];
    cout << endl;
    return 0;
}


#include <iostream>
using namespace std;
int fib(int n){
    if (n == 0) return 0;
    else if (n <= 2) return 1;
    else return fib(n - 2) + fib(n - 1);
}
int main () {
    int n;
    cin >> n;
    char s[n];
    //for (int i = 0; i < 4; ++i) s[i] = 'O';
    for (int i = 0; i < n; ++i) s[i] = 'o';
    //s[0] = 'O';
    for (int i = 0; i < n; ++i)
        s[fib(i) - 1] = 'O';
    for (int i = 0; i < n; ++i)
        cout << s[i];
    cout << endl;
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
int n;
int fibo(int n){
	int dp[n + 1];
	dp[0] = 0;
	dp[1] = 1;
	for (int i = 2; i <= n; ++i)
		dp[i] = dp[i - 1] + dp[i - 2];
	return dp[n];
}
void solve(){
	char ans[n + 1];
	for (int i = 1; i <= n; ++i)
		ans[i] = 'o';
	int cnt = 1;
	while (fibo(cnt) <= n){
		ans[fibo(cnt)] = 'O';
		cnt++;
	}
	for (int i = 1; i <= n; ++i)
		cout << ans[i];
	return;
}

int main (){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);

//	freopen("DEBUG.INP", "r", stdin);
	cin >> n;
	solve();
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main()
{
   int n,i,j;
   cin>>n;
   vector<int> v(n,0);
   v[0]=1;
   v[1]=1;
   for(i=2;i<n;i++)
     v[i]+=v[i-1]+v[i-2];

   for(i=0,j=1;i<n;i++)
     if(i+1==v[j])
      {
          cout<<"O";
          j++;
      }
      else
      cout<<"o";

}


#include<bits/stdc++.h>
using namespace std;
int main()
{
   int n,i,j;
   cin>>n;
   if(n==1 || n==2)
     {
         for(i=0;i<n;i++)
          cout<<"O";

         return 0;

     }
   vector<int> v(n);
   v[0]=1;
   v[1]=1;
   for(i=2;i<n;i++)
     {
      v[i]+=v[i-1]+v[i-2];
      if(v[i]>=n)
       break;
     }

   for(i=1,j=1;i<=n;i++)
     if(i==v[j] )
      {
          cout<<"O";
          j++;
      }
      else
      cout<<"o";

}


#include<bits/stdc++.h>
using namespace std;
int main()
{
   int n,i,j;
   cin>>n;
   vector<int> v(n);
   v[0]=1;
   v[1]=2;
   for(i=2;i<n;i++)
     {
      v[i]+=v[i-1]+v[i-2];
      if(v[i]>=n)
       break;
     }

   for(i=1,j=0;i<=n;i++)
     if(i==v[j] )
      {
          cout<<"O";
          j++;
      }
      else
      cout<<"o";

}


#include<bits/stdc++.h>
using namespace std;
int main()
{
   int n,i,j;
   cin>>n;
   vector<int> v(n);
   v[0]=1;
   v[1]=1;
   for(i=2;i<n;i++)
     {
      v[i]+=v[i-1]+v[i-2];
      if(v[i]>=n)
       break;
     }

   for(i=1,j=1;i<=n;i++)
     if(i==v[j])
      {
          cout<<"O";
          j++;
      }
      else
      cout<<"o";

}


#include<bits/stdc++.h>
using namespace std;

int main()
{
        //freopen("file.text", "r", stdin);
        int n;
        while ( cin >> n ) {
                int a = 0, b = 1, c = a + b;
                bool flag = false;
                while ( 1 ) {
                        if ( b == c || b+1 == c )
                                cout << "O";
                        else {
                                int k;
                                if ( c <= n ) {
                                        for ( int i = b+1; i < c; i++ )
                                                cout << "o";
                                        cout << "O";
                                }
                                else {
                                        for ( int i = b+1; i <= n; i++ )
                                                cout << "o";
                                }
                        }
                        if ( flag )
                                break;
                        a = b;
                        b = c;
                        c = a + b;
                        if ( c > n )
                                flag = true;
                }
                cout << endl;
        }

        return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
        f//reopen("file.text", "r", stdin);
        int n;
        while ( cin >> n ) {
                int a = 0, b = 1, c = a + b;
                bool flag = false;
                while ( 1 ) {
                        if ( b == c || b+1 == c )
                                cout << "O";
                        else {
                                int k;
                                if ( c < n ) {
                                        for ( int i = b+1; i < c; i++ )
                                                cout << "o";
                                        cout << "O";
                                }
                                else {
                                        for ( int i = b+1; i <= n; i++ )
                                                cout << "o";
                                }
                        }
                        if ( flag )
                                break;
                        a = b;
                        b = c;
                        c = a + b;
                        if ( c > n )
                                flag = true;
                }
                cout << endl;
        }

        return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
        //freopen("file.text", "r", stdin);
        int n;
        while ( cin >> n ) {
                int a = 0, b = 1, c = a + b;
                bool flag = false;
                while ( 1 ) {
                        if ( b == c || b+1 == c )
                                cout << "O";
                        else {
                                if ( c <= n ) {
                                        for ( int i = b+1; i < c; i++ )
                                                cout << "o";
                                        cout << "O";
                                }
                                else {
                                        for ( int i = b+1; i <= n; i++ )
                                                cout << "o";
                                }
                        }
                        a = b;
                        b = c;
                        c = a + b;
                        if ( c > n )
                                break;
                }
                if ( c <= n ) {
                        for ( int i = b+1; i < c; i++ )
                                cout << "o";
                                cout << "O";
                }
                else {
                        for ( int i = b+1; i <= n; i++ )
                                cout << "o";
                }
                cout << endl;
        }

        return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
        //freopen("file.text", "r", stdin);
        int n;
        while ( cin >> n ) {
                int a = 0, b = 1, c = a + b;
                bool flag = false;
                while ( 1 ) {
                        if ( b == c || b+1 == c )
                                cout << "O";
                        else {
                                int k;
                                if ( c < n ) {
                                        for ( int i = b+1; i < c; i++ )
                                                cout << "o";
                                        cout << "O";
                                }
                                else {
                                        for ( int i = b+1; i <= n; i++ )
                                                cout << "o";
                                }
                        }
                        if ( flag )
                                break;
                        a = b;
                        b = c;
                        c = a + b;
                        if ( c > n )
                                flag = true;
                }
                cout << endl;
        }

        return 0;
}


#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

vector<int> fib(int n)
{
    int f1 = 0,f2 = 1,aux;
    vector<int>v;
    v.push_back(f1);
    v.push_back(f2);
    for(int i = 3;i<=n;i++)
    {
        aux = f2;
        f2 = f1 + f2;
        f1 = aux;
        v.push_back(f2);
    }
    return v;
}

int main()
{
    int n;
    cin>>n;
    vector<int> v = fib(n);
    string s;
    for(int i = 0;i<v.size();i++)
    {

        if(find(v.begin(),v.end(),i+1) != v.end())
            s.push_back('O');
        else
            s.push_back('o');
    }
    cout<<s;

}


#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

vector<int>fib(int n)
{
    vector<int>v;
    int a1 = 0,a2 = 1,aux;
    v.push_back(a1);
    v.push_back(a2);
    for(int i = 3;i<=n;i++)
    {
        aux = a2;
        a2 = a2 + a1;
        a1 = aux;
        v.push_back(a2);
    }
    return v;
}
int main()
{
    int n;
    cin>>n;
    string s;
    vector<int>v = fib(n+2);

    for(int i = 1;i<=n;i++)
    {
        if(find(v.begin(),v.end(),i) != v.end())
            s.push_back('O');
        else s.push_back('o');

    }
    cout<<s;
}


#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

vector<int> fib(int n)
{
    int f1 = 0,f2 = 1,aux;
    vector<int>v;
    v.push_back(f2);
    for(int i = 3;i<=n;i++)
    {
        aux = f2;
        f2 = f1 + f2;
        f1 = aux;
        v.push_back(f2);
    }
    return v;
}

int main()
{
    int n;
    cin>>n;
    vector<int> v = fib(n);
    string s;
    if(n == 1){cout<<"O";return 0;}

    for(int i = 0;i<=v.size();i++)
    {

        if(find(v.begin(),v.end(),i+1) != v.end())
            s.push_back('O');
        else
            s.push_back('o');
    }
    cout<<s;

}


#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

vector<int> fib(int n)
{
    int f1 = 0,f2 = 1,aux;
    vector<int>v;
    v.push_back(f2);
    for(int i = 3;i<=n;i++)
    {
        aux = f2;
        f2 = f1 + f2;
        f1 = aux;
        v.push_back(f2);
    }
    return v;
}

int main()
{
    int n;
    cin>>n;
    vector<int> v = fib(n);
    string s;
    for(int i = 0;i<=v.size();i++)
    {

        if(find(v.begin(),v.end(),i+1) != v.end())
            s.push_back('O');
        else
            s.push_back('o');
    }
    cout<<s;

}


#include<iostream>
#include<string>
#include<map>
#include<set>
#include<algorithm>
#include<vector>
#include<iomanip>
#include<deque>
using namespace std;
typedef long long int ll;
//no idea how does it work !
int main() {
	int n, k = 1, l = 1, t;
	cin >> n;
	n++;
	for (int i = 1; i < n; i++) {
		if (i == k) {
			t = k;
			k += l;
			l = t;
			cout << 'O';
		}
		else if (i != 0)
			cout << 'o';
	}
	return 0;
}


#include<iostream>
#include<cmath>
#include<string>
#include<algorithm>
#include<iomanip>

using namespace std;

int main()
{
    int n;
    cin >> n;
    for(int i = 1; i <= n; i++)
        if(i == 1 || i == 2 || i == 3 || i == 5 || i == 8 || i == 13 || i == 21 || i == 34 || i == 55 || i == 89 || i == 144 || i == 233 || i == 377 || i == 610 || i == 987) cout << "0";
        else cout << "o";
}


#include<iostream>
#include<cmath>
#include<string>
#include<algorithm>
#include<iomanip>

using namespace std;

int main()
{
    int n;
    cin >> n;
    for(int i = 1; i <= n; i++)
        if(i == 1 || i == 2 || i == 3 || i == 5 || i == 8 || i == 13 || i == 21 || i == 34 || i == 55 || i == 89 || i == 144 || i == 233 || i == 377 || i == 610 || i == 987) cout << "O";
        else cout << "o";
}


import java.util.Scanner;

public class prac {
	static Scanner w = new Scanner(System.in);

	public static void main(String[] args) {
		String ss = w.next();
		int B=0,u=0,l=0,a=0,s=0,r=0;
		for (int i = 0; i < ss.length(); i++) {
			switch (ss.charAt(i)) {
			case 'B':
				B++;
				break;
			case 'u':
				u++;
				break;
			case 'l':
				l++;
				break;
			case 'a':
				a++;
				break;
			case 's':
				s++;
				break;
			case 'r':
				r++;
				break;
			}
		}

		int min=B;
		if (u<min) min=u;
		if (l<min) min=l;
		if (a<min) min=a;
		if (s<min) min=s;
		if (r<min) min=r;

		System.out.println(min);

	}
}


import java.util.Scanner;

public class prac {
	static Scanner w = new Scanner(System.in);

	public static void main(String[] args) {
		String ss = w.next();
		int B=0,u=0,l=0,a=0,s=0,r=0;
		for (int i = 0; i < ss.length(); i++) {
			switch (ss.charAt(i)) {
			case 'B':
				B++;
				break;
			case 'u':
				u++;
				break;
			case 'l':
				l++;
				break;
			case 'a':
				a++;
				break;
			case 's':
				s++;
				break;
			case 'r':
				r++;
				break;
			}
		}
		u/=2;
		a/=2;
		int min=B;
		if (u<min) min=u;
		if (l<min) min=l;
		if (a<min) min=a;
		if (s<min) min=s;
		if (r<min) min=r;

		System.out.println(min);

	}
}


import java.util.*;
public class Solution {
    public static void main(String[] args) {

        // Get the input from the system
        Scanner scanner = new Scanner(System.in);
        // Get the input string
        String s = scanner.next();
        // Create the target String That we want to compare with
        String target = "Bulbasaur";
        // Use two pointers to point to different positions
        int indexForOrigin = 0;
        int indexForTarget = 0;
        // Counter for counting how many times you need to
        int counter = 0;
        // Use a hashmap to calculate the number of each characters.
        HashMap<Character, Integer> map = new HashMap<Character, Integer>();
        HashMap<Character, Integer> targetMap = new HashMap<Character, Integer>();

        // Count the number of each characters
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (map.containsKey(c)) {
                map.put(c, map.get(c) + 1);
            }
            else {
                map.put(c, 1);
            }
        }

        for (int i = 0; i < target.length(); i++) {
            char c = target.charAt(i);
            if (targetMap.containsKey(c)) {
                targetMap.put(c, targetMap.get(c) + 1);
            }
            else {
                targetMap.put(c, 1);
            }
        }
        // calculate the times that target can be composed by calculating the minimum value of the times each characters appear
        for (char c : targetMap.keySet()) {
            int times = targetMap.get(c);
            if (map.containsKey(c) == false || map.get(c) < targetMap.get(c)) {
                counter = 0;
            }
            else {
                counter = Math.min(counter, map.get(c) / targetMap.get(c));
            }
        }
        System.out.println(counter);
    }
}


import java.util.*;
public class Solution {
    public static void main(String[] args) {

        // Get the input from the system
        Scanner scanner = new Scanner(System.in);
        // Get the input string
        String s = scanner.next();
        // Create the target String That we want to compare with
        String target = "Bulbasaur";
        // Use two pointers to point to different positions
        int indexForOrigin = 0;
        int indexForTarget = 0;
        // Counter for counting how many times you need to
        int counter = Integer.MAX_VALUE;
        // Use a hashmap to calculate the number of each characters.
        HashMap<Character, Integer> map = new HashMap<Character, Integer>();
        HashMap<Character, Integer> targetMap = new HashMap<Character, Integer>();

        // Count the number of each characters
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (map.containsKey(c)) {
                map.put(c, map.get(c) + 1);
            }
            else {
                map.put(c, 1);
            }
        }

        for (int i = 0; i < target.length(); i++) {
            char c = target.charAt(i);
            if (targetMap.containsKey(c)) {
                targetMap.put(c, targetMap.get(c) + 1);
            }
            else {
                targetMap.put(c, 1);
            }
        }
        // calculate the times that target can be composed by calculating the minimum value of the times each characters appear
        for (char c : targetMap.keySet()) {
            int times = targetMap.get(c);
            if (map.containsKey(c) == false || map.get(c) < targetMap.get(c)) {
                counter = 0;
            }
            else {
                counter = Math.min(counter, map.get(c) / targetMap.get(c));
            }
        }
        System.out.println(counter);
    }
}


import java.util.*;
public class Solution {
    public static void main(String[] args) {

        // Get the input from the system
        Scanner scanner = new Scanner(System.in);
        // Get the input string
        String s = scanner.next();
        // Create the target String That we want to compare with
        String target = "Bulbbasaur";
        // Use two pointers to point to different positions
        int indexForOrigin = 0;
        int indexForTarget = 0;
        // Counter for counting how many times you need to
        int counter = Integer.MAX_VALUE;
        // Use a hashmap to calculate the number of each characters.
        HashMap<Character, Integer> map = new HashMap<Character, Integer>();
        HashMap<Character, Integer> targetMap = new HashMap<Character, Integer>();

        // Count the number of each characters
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (map.containsKey(c)) {
                map.put(c, map.get(c) + 1);
            }
            else {
                map.put(c, 1);
            }
        }

        for (int i = 0; i < target.length(); i++) {
            char c = target.charAt(i);
            if (targetMap.containsKey(c)) {
                targetMap.put(c, targetMap.get(c) + 1);
            }
            else {
                targetMap.put(c, 1);
            }
        }
        // calculate the times that target can be composed by calculating the minimum value of the times each characters appear
        for (char c : targetMap.keySet()) {
            int times = targetMap.get(c);
            if (map.containsKey(c) == false || map.get(c) < targetMap.get(c)) {
                counter = 0;
            }
            else {
                counter = Math.min(counter, map.get(c) / targetMap.get(c));
            }
        }
        System.out.println(counter);
    }
}


import java.util.*;
public class Solution {
    public static void main(String[] args) {

        // Get the input from the system
        Scanner scanner = new Scanner(System.in);
        // Get the input string
        String s = scanner.next();
        // Create the target String That we want to compare with
        String target = "Bulbbasaur";
        // Use two pointers to point to different positions
        int indexForOrigin = 0;
        int indexForTarget = 0;
        // Counter for counting how many times you need to
        int counter = 0;
        // Use a hashmap to calculate the number of each characters.
        HashMap<Character, Integer> map = new HashMap<Character, Integer>();
        HashMap<Character, Integer> targetMap = new HashMap<Character, Integer>();

        // Count the number of each characters
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (map.containsKey(c)) {
                map.put(c, map.get(c) + 1);
            }
            else {
                map.put(c, 1);
            }
        }

        for (int i = 0; i < target.length(); i++) {
            char c = target.charAt(i);
            if (targetMap.containsKey(c)) {
                targetMap.put(c, targetMap.get(c) + 1);
            }
            else {
                targetMap.put(c, 1);
            }
        }
        // calculate the times that target can be composed by calculating the minimum value of the times each characters appear
        for (char c : targetMap.keySet()) {
            int times = targetMap.get(c);
            if (map.containsKey(c) == false || map.get(c) < targetMap.get(c)) {
                counter = 0;
            }
            else {
                counter = Math.min(counter, map.get(c) / taretMap.get(c));
            }
        }
        System.out.println(counter);
    }
}


import java.util.*;
public class Solution {
    public static void main(String[] args) {

        // Get the input from the system
        Scanner scanner = new Scanner(System.in);
        // Get the input string
        String s = scanner.next();
        // Create the target String That we want to compare with
        String target = "Bulbbasaur";
        // Use two pointers to point to different positions
        int indexForOrigin = 0;
        int indexForTarget = 0;
        // Counter for counting how many times you need to
        int counter = 0;
        // Use a hashmap to calculate the number of each characters.
        HashMap<Character, Integer> map = new HashMap<Character, Integer>();
        HashMap<Character, Integer> targetMap = new HashMap<Character, Integer>();

        // Count the number of each characters
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (map.containsKey(c)) {
                map.put(c, map.get(c) + 1);
            }
            else {
                map.put(c, 1);
            }
        }

        for (int i = 0; i < target.length(); i++) {
            char c = target.charAt(i);
            if (targetMap.containsKey(c)) {
                targetMap.put(c, targetMap.get(c) + 1);
            }
            else {
                targetMap.put(c, 1);
            }
        }
        // calculate the times that target can be composed by calculating the minimum value of the times each characters appear
        for (char c : targetMap.keySet()) {
            int times = targetMap.get(c);
            if (map.containsKey(c) == false || map.get(c) < targetMap.get(c)) {
                counter = 0;
            }
            else {
                counter = Math.min(counter, map.get(c) / targetMap.get(c));
            }
        }
        System.out.println(counter);
    }
}


import java.util.*;
public class Solution {
    public static void main(String[] args) {

        // Get the input from the system
        Scanner scanner = new Scanner(System.in);
        // Get the input string
        String s = scanner.next();
        // Create the target String That we want to compare with
        String target = "Bulbbasaur";
        // Use two pointers to point to different positions
        int indexForOrigin = 0;
        int indexForTarget = 0;
        // Counter for counting how many times you need to
        int counter = 0;

        while (indexForOrigin < s.length()) {
            // If two characters are the same, increate the pointer for target
            if (s.charAt(indexForOrigin) == target.charAt(indexForTarget)) {
                indexForTarget++;
            }
            if (indexForTarget == target.length()) {
                indexForTarget = 0;
                counter++;
            }
            indexForOrigin++;
        }
        System.out.println(counter);
    }
}


import java.util.*;
public class Solution {
    public static void main(String[] args) {

        // Get the input from the system
        Scanner scanner = new Scanner(System.in);
        // Get the input string
        String s = scanner.next();
        // Create the target String That we want to compare with
        String target = "Bulbbasaur";
        // Use two pointers to point to different positions
        int indexForOrigin = 0;
        int indexForTarget = 0;
        // Counter for counting how many times you need to
        int counter = 0;

        while (indexForOrigin < s.length()) {
            // If two characters are the same, increate the pointer for target
            if (s.charAt(indexForOrigin) == target.charAt(indexForTarget)) {
                indexForTarget++;
            }
            if (indexForTarget == target.length()) {
                indexForTarget = 0;
                counter++;
            }
            indexForOrigin++;
        }
        return counter;
    }
}


function toInt( s ) { return s.charCodeAt(0); }

function main()
{
    var s = readline();
    var t = "Bulbasaur";

    var a = {} , b = {};

    s.split('').forEach( (v) => a[v] = a[v] ? a[v]+1 : 1 );
    t.split('').forEach( (v) => b[v] = b[v] ? b[v]+1 : 1 );

    var ans = 1e9 + 5;
    for ( var i in b )
    {
        var c1 = a[i] ? a[i] : 0;
        var c2 = b[i];
        var thiz = ~~( c1 / c2 );   // ~~ => floor ( http://stackoverflow.com/questions/4228356/how-to-perform-integer-division-and-get-the-remainder-in-javascript )
        ans = Math.min( ans , thiz );
    }
    print( ans );

} main();


function toInt( s ) { return s.charCodeAt(0); }

function main()
{
    var s = readline();
    var t = "Bulbasaur";

    var a = new Array( 256 ).fill(0);
    var b = new Array( 256 ).fill( 0 );

    s.split('').forEach( (v) => a[toInt(v)]++ );
    t.split('').forEach( (v) => b[toInt(v)]++ );

    var ans = 1e9 + 5;
    for ( var i=0 ; i<256 ; i++ )
    {
        if ( b[i] > 0 )
        {
            var thiz = ~~( a[i] / b[i] );   // ~~ => floor ( http://stackoverflow.com/questions/4228356/how-to-perform-integer-division-and-get-the-remainder-in-javascript )
            ans = Math.min( ans , thiz );
        }
    }
    print( ans );

} main();


function main() {
    var s1 = readline();
    var lettersCounts = {};
    for(var i=0;i<s1.length;i++){
        if(lettersCounts[s1[i]]){
            lettersCounts[s1[i]]++;
        } else {
            lettersCounts[s1[i]] = 1;
        }
    }
   var array = [];
    var bulb = "Bulbasaur";
    for(var i=0;i<bulb.length;i++){
        if(bulb[i] == "u" || bulb[i] == "a"){
            array.push(Math.floor((lettersCounts[bulb[i]] || 0)/ 2));
        } else {
            array.push(lettersCounts[bulb[i]] || 0);
        }
    }
    print(Math.min(...array));
}

main()


#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<queue>
#include<stack>
#include<map>
#include<set>
#define N 200020
using namespace std;
map<char,int>M;
char t[7]={'B','u','l','b','a','s','r'};
int num[7]={1,2,1,1,2,1,1};
char ch[N];
int main()
{
    scanf("%s",ch);int n=strlen(ch);
    for(int i=0;i<n;i++)M[ch[i]]++;
    int ans=1<<30;
    for(int i=0;i<7;i++)ans=min(ans,M[t[i]]/num[i]);
    printf("%d\n",ans);
}


#include<stdio.h>
#include<string.h>

int main()
{
    //freopen("input.txt", "r", stdin);
    char str[100001];
    int i, B=0, u2=0, l=0, b=0, a2=0, s=0, r=0;
    gets(str);
    for(i=0; str[i] != '\0'; i++)
    {
        if(str[i] == 'B')
            B++;
        else if( str[i] == 'u')
            u2++;
        else if( str[i] == 'l')
            l++;
        else if( str[i] == 'b')
            b++;
        else if( str[i] == 'a')
            a2++;
        else if( str[i] == 's')
            s++;
        else if( str[i] == 'r')
            r++;
    }
    u2=u2/2;
    a2=a2/2;
    int min = B;
        if(min > u2)
            min = u2;
        if(min > l)
            min = l;
        if(min > b)
            min = b;
        if(min > a2)
            min = a2;
        if(min > s)
            min = s;
        if(min > r)
            min = r;
    printf("%d\n", min);
    return 0;
}


#include<stdio.h>
#include<string.h>

int main()
{
    //freopen("input.txt", "r", stdin);
    char str[100001], name[10];
    strcpy(name, "Bulbasaur");
    int i, j, c=0;
    gets(str);
    j= strlen(str);
    for(i=0; i< j; i++)
    {
        if(str[i] == name[0])
            name[0] = '1';
        else if( str[i] == name[1])
            name[1] = '1';
        else if(str[i] == name[2])
            name[2] = '1';
        else if( str[i] == name[3])
            name[3] = '1';
        else if( str[i] == name[4])
            name[4] = '1';
        else if( str[i] == name[5])
            name[5] = '1';
        else if( str[i] == name[6])
            name[6] = '1';
        else if(str[i] == name[7])
            name[7] = '1';
        else if( str[i] == name[8])
            name[8] = '1';
        if(strcmp(name, "111111111") == 0)
        {
            c += 1;
            strcpy(name, "Bulbasaur");
        }
    }
    printf("%d\n", c);
    return 0;
}


#include<stdio.h>
#include<string.h>

int main()
{
    freopen("input.txt", "r", stdin);
    char str[100001];
    int i, B=0, u2=0, l=0, b=0, a2=0, s=0, r=0;
    gets(str);
    for(i=0; str[i] != '\0'; i++)
    {
        if(str[i] == 'B')
            B++;
        else if( str[i] == 'u')
            u2++;
        else if( str[i] == 'l')
            l++;
        else if( str[i] == 'b')
            b++;
        else if( str[i] == 'a')
            a2++;
        else if( str[i] == 's')
            s++;
        else if( str[i] == 'r')
            r++;
    }
    u2=u2/2;
    a2=a2/2;
    int min = B;
        if(min > u2)
            min = u2;
        if(min > l)
            min = l;
        if(min > b)
            min = b;
        if(min > a2)
            min = a2;
        if(min > s)
            min = s;
        if(min > r)
            min = r;
    printf("%d\n", min);
    return 0;
}


#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>

using namespace std;
char t[7] = {'B', 'l', 'b', 'a', 's', 'u', 'r'};
int m[500];
const int MAX_I = 10000000;

int main() {
    char s[100000 + 10];
    scanf("%s", s);
    for (int i = 0; i < strlen(s); i++)
        m[s[i]]++;

    int res = MAX_I;
    m['a'] /= 2;
    m['u'] /= 2;
    for (int i = 0; i < 7; i++)
        res = min(res, m[t[i]]);

    printf("%d\n", res);
    return 0;
}


#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>

using namespace std;
char t[7] = {'B', 'l', 'b', 'a', 's', 'u', 'r'};
int m[500];
const int MAX_I = 10000000;

int main() {
    char s[100000 + 10];
    gets(s);
    for (int i = 0; s[i] != '\0'; i++)
        m[s[i]]++;
    int res = MAX_I;
    m['a'] /= 2;
    m['u'] /= 2;
    for (int i = 0; i < 7; i++)
        res = min(res, m[t[i]]);
    printf("%d\n", res);
    return 0;
}


#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>

using namespace std;
char t[7] = {'B', 'l', 'b', 'a', 's', 'u', 'r'};
int m[500];
const int MAX_I = 10000000;

int main() {
    char s[100000 + 1];
    scanf("%s", s);
    for (int i = 0; i < strlen(s); i++)
        m[s[i]]++;

    int res = MAX_I;
    m['a'] /= 2;
    m['u'] /= 2;
    for (int i = 0; i < 7; i++) {
        res = min(res, m[t[i]]);
    }
//
    printf("%d\n", res);

    return 0;
}


#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>

using namespace std;
char t[7] = {'B', 'l', 'b', 'a', 's', 'u', 'r'};
int m[500];
const int MAX_I = 10000000;

int main() {
    char s[100000 + 1];
    scanf("%s", s);
    for (int i = 0; i < strlen(s); i++)
        m[s[i]]++;

    int res = MAX_I;
    m['a'] /= 2;
    m['u'] /= 2;
    for (int i = 0; i < 7; i++) {
        res = min(res, m[t[i]]);
    }

    printf("%d\n", res);

    return 0;
}


#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>

using namespace std;
char t[10] = {'B', 'u', 'l', 'b', 'b', 'a', 's', 'a', 'u', 'r'};
int m[500];
const int MAX_I = 10000000;

int main() {
    char s[100000 + 1];
    scanf("%s", s);
    for (int i = 0; i < strlen(s); i++)
        m[s[i]]++;

    int res = MAX_I;
    for (int i = 0; i < 10; i++) {
        res = min(res, m[t[i]]);
    }

    printf("%d\n", res);

    return 0;
}


#include<cstdio>
#include <cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<vector>
#include <map>
using namespace std;

int main()
{
    int b[]={27,20,11,18,17,1,0};
    char s[100000];
    int a[52]={0};
    int i,min;
    scanf("%s",s);
    for (i=0;s[i]!='\0';i++)
    {
        if (s[i]>='A' && s[i]<='Z')
        {
            a[s[i]-'A'+26]++;
        }
        if (s[i]>='a' && s[i]<='z')
        {
            a[s[i]-'a']++;
        }
    }
    a[20]/=2;
    a[0]/=2;
    min=a[b[0]];
    for (i=0;i<7;i++)
    {
        if (a[b[i]]<min)
        {
            min=a[b[i]];
        }
    }
    printf("%d\n",min);
    return 0;
}


#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>

using namespace std;
char t[7] = {'B', 'l', 'b', 'a', 's', 'u', 'r'};
int m[500];
const int MAX_I = 10000000;

int main() {
    char s[100000 + 10];
    gets(s);
    for (int i = 0; i < strlen(s); i++)
        m[s[i]]++;

    int res = MAX_I;
    m['a'] /= 2;
    m['u'] /= 2;
    for (int i = 0; i < 7; i++)
        res = min(res, m[t[i]]);

    printf("%d\n", res);
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
long long int x,y,z,n;
char a[]="Bulbasaur";
char aa[1000005];
map<char,long long int>mp;

int main()
{
    int i,j,k,l;
    gets(aa);
    l=strlen(aa);
    for(i=0;i<l;i++)
    {
        if(aa[i]=='a'|| aa[i]=='b'|| aa[i]=='B'|| aa[i]=='u'|| aa[i]=='s'|| aa[i]=='r'|| aa[i]=='l')
        mp[aa[i]]++;
    }
    n=0;
    bool f=0;
 while(!f){
    for(i=0;i<10;i++)
    {
        if(mp[a[i]]==0)
            f=1;
        else
            mp[a[i]]--;

    }
    if(f==0)
        n++;
 }
    cout<<n<<endl;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
long long int x,y,z,n;
char a[]="Bulbbasaur";
char aa[1000005];
map<char,int>mp;

int main()
{
    int i,j,k,l;
    gets(aa);
    l=strlen(aa);
    for(i=0;i<l;i++)
    {
        mp[aa[i]]++;
    }
    bool f=0;
 while(!f){
    for(i=0;i<strlen(a);i++)
    {
        if(mp[a[i]]==0)
            f=1;
        else
            mp[a[i]]--;

    }
    if(f==0)
        n++;
 }
    cout<<n<<endl;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
long long int x,y,z,n;
char a[]="Bulbbasaur";
char aa[1000005];
map<char,int>mp;

int main()
{
    int i,j,k,l,ii;
    x=0;
    gets(aa);
    l=strlen(aa);
    for(i=0;i<l;i++)
    {
        n=0;
        mp[aa[i]]++;
        for(ii=0;ii<strlen(a);ii++)
        {
        if(ii==0)
            n=mp[a[ii]];
        else if(mp[a[ii]]<n)
            n=mp[a[ii]];
        }
        if(n==1)
        {
            x+=n;
            mp.clear();
        }
    }

    cout<<x<<endl;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
long long int x,y,z,n;
char a[]="Bulbbasaur";
char aa[1000005];
map<char,long long int>mp;

int main()
{
    int i,j,k,l;
    gets(aa);
    l=strlen(aa);
    for(i=0;i<l;i++)
    {
        if(aa[i]=='a'|| aa[i]=='b'|| aa[i]=='B'|| aa[i]=='u'|| aa[i]=='s'|| aa[i]=='r'|| aa[i]=='l')
        mp[aa[i]]++;
    }
    n=0;
    bool f=0;
 while(!f){
    for(i=0;i<10;i++)
    {
        if(mp[a[i]]==0)
            f=1;
        else
            mp[a[i]]--;

    }
    if(f==0)
        n++;
 }
    cout<<n<<endl;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
long long int x,y,z,n;
char a[]="Bulbasaur";
char aa[1000005];
map<char,long long int>mp;

int main()
{
    int i,j,k,l;
    gets(aa);
    l=strlen(aa);
    for(i=0;i<l;i++)
    {
        if(aa[i]=='a'|| aa[i]=='b'|| aa[i]=='B'|| aa[i]=='u'|| aa[i]=='s'|| aa[i]=='r'|| aa[i]=='l')
        mp[aa[i]]++;
    }
    n=0;
    bool f=0;
 while(!f){
    for(i=0;i<9;i++)
    {
        if(mp[a[i]]==0)
            f=1;
        else
            mp[a[i]]--;

    }
    if(f==0)
        n++;
 }
    cout<<n<<endl;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
long long int x,y,z,n,a[100005],p[100005],m,mm;
map<long long int,int>mp;
void ck(long long int xx)
{
    if(mp[xx]>0)
    {
        mp[xx]++;
        return;
    }
    int i;
    for(i=2;i<=sqrt(xx);i++)
    {
        if(xx%i==0)
            {
                if(mp[xx]==0)
                {
                    mp[xx]++;
                    a[z++]=xx;
                }
                return;
            }
    }
    mp[xx]++;
    p[y++]=xx;
}

int main()
{
    int i,j,k,l;
    y=0;
    z=0;
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>x;
        if(x>1)
        ck(x);
        else
            mm=1;
    }

    m=0;
    for(i=0;i<y;i++)
    {
        x=0;
        for(j=0;j<z;j++)
        {

           if((std::__gcd(a[j],p[i]))>1)
            x+=mp[a[j]];
        }
        if(m<(x+mp[p[i]]))
        {
             m=(x+mp[p[i]]);
        }

    }
    cout<<max(m,mm)<<endl;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
long long int x,y,z,n;
char a[]="Bulbbasaur";
char aa[1000005];
map<char,int>mp;

int main()
{
    int i,j,k,l;
    gets(aa);
    l=strlen(aa);
    for(i=0;i<l;i++)
    {
        mp[aa[i]]++;
    }

    for(i=0;i<strlen(a);i++)
    {
        if(i==0)
            n=mp[a[i]];
        else if(mp[a[i]]<n)
            n=mp[a[i]];

    }
    cout<<n<<endl;

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
long long int x,y,z,n;
char a[]="Bulbbasaur";
char aa[1000005];
map<char,int>mp;

int main()
{
    int i,j,k,l;
    gets(aa);
    l=strlen(aa);
    for(i=0;i<l;i++)
    {
        mp[aa[i]]++;
    }

    for(i=0;i<strlen(a);i++)
    {
        if(i==0)
            n=mp[a[i]];
        else if( (a[i]=='a' || a[i]=='u' || a[i]=='b') && ((mp[a[i]])/2)<n)
            {
                n=((mp[a[i]])/2);
            }
        else if(mp[a[i]]<n)
             n=mp[a[i]];

    }
    cout<<n<<endl;

    return 0;
}


//#include <cstdio>
//#include <iostream>
//#include <cstring>
//#include <algorithm>
//#include <queue>
//using namespace std;
//const int maxn=3e5+10;
//typedef long long LL;
//struct node
//{
//    int left,right,id;
//}a[maxn];
//
//bool cmp(node x,node y)
//{
//    return x.left<y.left;
//}
//
//int main()
//{
//    int n,k;
//    while(~scanf("%d%d",&n,&k))
//    {
//        for(int i=0;i<n;i++)
//        {
//            scanf("%d%d",&a[i].left,&a[i].right);
//            a[i].id=i+1;
//        }
//        priority_queue<int,vector<int>,greater<int> >que;
//        sort(a,a+n,cmp);
//        int ans=0,L=0;
//        for(int i=0;i<n;i++)
//        {
//            que.push(a[i].right);
//            if(que.size()>k)
//                que.pop();
//            int len=que.top()-a[i].left+1;
//            if(ans<len &&que.size()==k)
//            {
//                ans=len;
//                L=a[i].left;
//            }
//        }
//        printf("%d\n",ans);
//        if(ans==0)
//        {
//            printf("1");
//            for(int i=2;i<=k;i++)
//            {
//                printf(" %d",i);
//            }
//        }
//        else
//        {
//            for(int i=0;i<n && k;i++)
//            {
//                if(L>=a[i].left&&ans+L-1<=a[i].right)
//                {
//                    if(k>=1)
//                        printf("%d ",a[i].id);
//                    else
//                        printf("%d",a[i].id);
//                    k--;
//                }
//            }
//        }
//        printf("\n");
//    }
//    return 0;
//}
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <map>
#include <cstring>
#include <cmath>
#include <string>
#include <set>
#include <bits/stdc++.h>

#define mem(a) memset(a,0,sizeof(a))
#define fi first
#define se second
using namespace std;
const int dx[8]= {1,1,0,-1,-1,-1,0,1};
const int dy[8]= {0,1,1,1,0,-1,-1,-1};

int dir[][2]= {{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1}};
const int maxn=30+5;
const int inf=1e9;
void input()
{
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
}
//const double pi=acos(-1,0);
typedef pair<int,int> PA;
typedef long long LL;
map<int,int>::iterator  iter;
//PA s[maxn];

char s[1000000];
int maxx;
int main()
{
    while(cin>>s)
    {

    int a,b,c,d,e,f,g ;
    int len=strlen(s);
    for(int i=0; i<len; i++)
    {
        if(s[i]=='B')
        {
            a++;
        }
        if(s[i]=='a')
        {
            b++;
        }
        if(s[i]=='b')
            c++;
        if(s[i]=='s')
            d++;
        if(s[i]=='u')
            e++;
        if(s[i]=='r')
            f++;
        if(s[i]=='l')
            g++;
        maxx=999999;
        maxx=min(a,maxx);
        maxx=min(b/2,maxx);
        maxx=min(c/2,maxx);
        maxx=min(d,maxx);
        maxx=min(e/2,maxx);
        maxx=min(f,maxx);
        maxx=min(g,maxx);
    }
        cout<<maxx;     //1221211

}
}


#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=1e5+10;
int main()
{
    char s[maxn];
    while(cin>>s)
    {
        int a[10];
        memset(a,0,sizeof(a));
        int len=strlen(s);
        for(int i=0;i<len;i++)
        {
            if(s[i]=='B')
                a[1]++;
            if(s[i]=='u')
                a[2]++;
                if(s[i]=='l')
                a[3]++;
                if(s[i]=='b')
                a[4]++;
                if(s[i]=='a')
                a[5]++;
                if(s[i]=='s')
                a[6]++;
                if(s[i]=='r')
                a[7]++;
        }
        int minn=999999;
        a[2]/=2;
        a[5]/=2;
        for(int i=1;i<=7;i++)
        {
            minn=min(a[i],minn);
        }
        cout<<minn<<endl;
    }
}


//#include <cstdio>
//#include <iostream>
//#include <cstring>
//#include <algorithm>
//#include <queue>
//using namespace std;
//const int maxn=3e5+10;
//typedef long long LL;
//struct node
//{
//    int left,right,id;
//}a[maxn];
//
//bool cmp(node x,node y)
//{
//    return x.left<y.left;
//}
//
//int main()
//{
//    int n,k;
//    while(~scanf("%d%d",&n,&k))
//    {
//        for(int i=0;i<n;i++)
//        {
//            scanf("%d%d",&a[i].left,&a[i].right);
//            a[i].id=i+1;
//        }
//        priority_queue<int,vector<int>,greater<int> >que;
//        sort(a,a+n,cmp);
//        int ans=0,L=0;
//        for(int i=0;i<n;i++)
//        {
//            que.push(a[i].right);
//            if(que.size()>k)
//                que.pop();
//            int len=que.top()-a[i].left+1;
//            if(ans<len &&que.size()==k)
//            {
//                ans=len;
//                L=a[i].left;
//            }
//        }
//        printf("%d\n",ans);
//        if(ans==0)
//        {
//            printf("1");
//            for(int i=2;i<=k;i++)
//            {
//                printf(" %d",i);
//            }
//        }
//        else
//        {
//            for(int i=0;i<n && k;i++)
//            {
//                if(L>=a[i].left&&ans+L-1<=a[i].right)
//                {
//                    if(k>=1)
//                        printf("%d ",a[i].id);
//                    else
//                        printf("%d",a[i].id);
//                    k--;
//                }
//            }
//        }
//        printf("\n");
//    }
//    return 0;
//}
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <map>
#include <cstring>
#include <cmath>
#include <string>
#include <set>
#include <bits/stdc++.h>

#define mem(a) memset(a,0,sizeof(a))
#define fi first
#define se second
using namespace std;
const int dx[8]= {1,1,0,-1,-1,-1,0,1};
const int dy[8]= {0,1,1,1,0,-1,-1,-1};

int dir[][2]= {{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1}};
const int maxn=30+5;
const int inf=1e9;
void input()
{
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
}
//const double pi=acos(-1,0);
typedef pair<int,int> PA;
typedef long long LL;
map<int,int>::iterator  iter;
//PA s[maxn];

char s[1000000];
int maxx;
int main()
{
    //char s[1000000];
    //gets(s);
    scanf("%s",s);
    int a,b,c,d,e,f,g ;
    int len=strlen(s);
    for(int i=0; i<len; i++)
    {
        if(s[i]=='B')
        {
            a++;
        }
        if(s[i]=='a')
        {
            b++;
        }
        if(s[i]=='b')
            c++;
        if(s[i]=='s')
            d++;
        if(s[i]=='u')
            e++;
        if(s[i]=='r')
            f++;
        if(s[i]=='l')
            g++;
        maxx=999999;
        maxx=min(a,maxx);
        maxx=min(b/2,maxx);
        maxx=min(c/2,maxx);
        maxx=min(d,maxx);
        maxx=min(e/2,maxx);
        maxx=min(f,maxx);
        maxx=min(g,maxx);
    }
        cout<<maxx<<endl;     //1221211

}


//#include <cstdio>
//#include <iostream>
//#include <cstring>
//#include <algorithm>
//#include <queue>
//using namespace std;
//const int maxn=3e5+10;
//typedef long long LL;
//struct node
//{
//    int left,right,id;
//}a[maxn];
//
//bool cmp(node x,node y)
//{
//    return x.left<y.left;
//}
//
//int main()
//{
//    int n,k;
//    while(~scanf("%d%d",&n,&k))
//    {
//        for(int i=0;i<n;i++)
//        {
//            scanf("%d%d",&a[i].left,&a[i].right);
//            a[i].id=i+1;
//        }
//        priority_queue<int,vector<int>,greater<int> >que;
//        sort(a,a+n,cmp);
//        int ans=0,L=0;
//        for(int i=0;i<n;i++)
//        {
//            que.push(a[i].right);
//            if(que.size()>k)
//                que.pop();
//            int len=que.top()-a[i].left+1;
//            if(ans<len &&que.size()==k)
//            {
//                ans=len;
//                L=a[i].left;
//            }
//        }
//        printf("%d\n",ans);
//        if(ans==0)
//        {
//            printf("1");
//            for(int i=2;i<=k;i++)
//            {
//                printf(" %d",i);
//            }
//        }
//        else
//        {
//            for(int i=0;i<n && k;i++)
//            {
//                if(L>=a[i].left&&ans+L-1<=a[i].right)
//                {
//                    if(k>=1)
//                        printf("%d ",a[i].id);
//                    else
//                        printf("%d",a[i].id);
//                    k--;
//                }
//            }
//        }
//        printf("\n");
//    }
//    return 0;
//}
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <map>
#include <cstring>
#include <cmath>
#include <string>
#include <set>
#include <bits/stdc++.h>

#define mem(a) memset(a,0,sizeof(a))
#define fi first
#define se second
using namespace std;
const int dx[8]= {1,1,0,-1,-1,-1,0,1};
const int dy[8]= {0,1,1,1,0,-1,-1,-1};

int dir[][2]= {{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1}};
const int maxn=30+5;
const int inf=1e9;
void input()
{
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
}
//const double pi=acos(-1,0);
typedef pair<int,int> PA;
typedef long long LL;
map<int,int>::iterator  iter;
//PA s[maxn];

char s[1000000];
int maxx;
int main()
{
    while(cin>>s)
    {

    int a,b,c,d,e,f,g ;
    int len=strlen(s);
    for(int i=0; i<len; i++)
    {
        if(s[i]=='B')
        {
            a++;
        }
        if(s[i]=='a')
        {
            b++;
        }
        if(s[i]=='b')
            c++;
        if(s[i]=='s')
            d++;
        if(s[i]=='u')
            e++;
        if(s[i]=='r')
            f++;
        if(s[i]=='l')
            g++;
        maxx=999999;
        maxx=min(a,maxx);
        maxx=min(b/2,maxx);
        maxx=min(c/2,maxx);
        maxx=min(d,maxx);
        maxx=min(e/2,maxx);
        maxx=min(f,maxx);
        maxx=min(g,maxx);
    }
        cout<<maxx<<endl;     //1221211

}
}


//#include <cstdio>
//#include <iostream>
//#include <cstring>
//#include <algorithm>
//#include <queue>
//using namespace std;
//const int maxn=3e5+10;
//typedef long long LL;
//struct node
//{
//    int left,right,id;
//}a[maxn];
//
//bool cmp(node x,node y)
//{
//    return x.left<y.left;
//}
//
//int main()
//{
//    int n,k;
//    while(~scanf("%d%d",&n,&k))
//    {
//        for(int i=0;i<n;i++)
//        {
//            scanf("%d%d",&a[i].left,&a[i].right);
//            a[i].id=i+1;
//        }
//        priority_queue<int,vector<int>,greater<int> >que;
//        sort(a,a+n,cmp);
//        int ans=0,L=0;
//        for(int i=0;i<n;i++)
//        {
//            que.push(a[i].right);
//            if(que.size()>k)
//                que.pop();
//            int len=que.top()-a[i].left+1;
//            if(ans<len &&que.size()==k)
//            {
//                ans=len;
//                L=a[i].left;
//            }
//        }
//        printf("%d\n",ans);
//        if(ans==0)
//        {
//            printf("1");
//            for(int i=2;i<=k;i++)
//            {
//                printf(" %d",i);
//            }
//        }
//        else
//        {
//            for(int i=0;i<n && k;i++)
//            {
//                if(L>=a[i].left&&ans+L-1<=a[i].right)
//                {
//                    if(k>=1)
//                        printf("%d ",a[i].id);
//                    else
//                        printf("%d",a[i].id);
//                    k--;
//                }
//            }
//        }
//        printf("\n");
//    }
//    return 0;
//}
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <map>
#include <cstring>
#include <cmath>
#include <string>
#include <set>
#include <bits/stdc++.h>

#define mem(a) memset(a,0,sizeof(a))
#define fi first
#define se second
using namespace std;
const int dx[8]= {1,1,0,-1,-1,-1,0,1};
const int dy[8]= {0,1,1,1,0,-1,-1,-1};

int dir[][2]= {{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1}};
const int maxn=30+5;
const int inf=1e9;
void input()
{
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
}
//const double pi=acos(-1,0);
typedef pair<int,int> PA;
typedef long long LL;
map<int,int>::iterator  iter;
//PA s[maxn];

char s[1000000];
int maxx;
int main()
{
    while(cin>>s)
    {

    int a,b,c,d,e,f,g ;
    int len=strlen(s);
    for(int i=0; i<len; i++)
    {
        if(s[i]=='B')
        {
            a++;
        }
        if(s[i]=='a')
        {
            b++;
        }
        if(s[i]=='b')
            c++;
        if(s[i]=='s')
            d++;
        if(s[i]=='u')
            e++;
        if(s[i]=='r')
            f++;
        if(s[i]=='l')
            g++;
        maxx=999999;
        maxx=min(a,maxx);
        maxx=min(b/2,maxx);
        maxx=min(c,maxx);
        maxx=min(d,maxx);
        maxx=min(e/2,maxx);
        maxx=min(f,maxx);
        maxx=min(g,maxx);
    }
        cout<<maxx;     //1221211

}
}


/* Alisher Rakhimberdi  */
/*     Hala Madrid     */
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <vector>
#include <string>
#include <queue>
#include <cmath>
#include <deque>
#include <ctime>
#include <stack>
#include <set>
#include <map>

#define f first
#define s second
#define ppb pop_back
#define pb push_back
#define mp make_pair
#define ll long long
#define ld long double
#define ull unsigned long long
#define sr(x) sort(x.begin(), x.end())
#define rv(x) reverse(x.begin(), x.end())
#define speed ios_base::sync_with_stdio(false)

using namespace std;

const int maxn = 1e5 + 123;
const ll inf = 1e9 + 123;
const ld INF = 1e12 + 123;
const int mod = 1e7 + 123;

string s;
ll a, b, c, d, e, f, g, cnt;

int main() {
	cin >> s;
	for (int i = 0; i <= s.size(); ++i) {
		if (s[i] == 'B') {
	   		a++;
	    }
	    if (s[i] == 'u') {
	   		b++;
	    }
	    if (s[i] == 'l') {
	    	c++;
	    }
	    if (s[i] == 'b') {
	    	d++;
	    }
	    if (s[i] == 'a') {
	    	e++;
	    }
	    if (s[i] == 's') {
	        f++;
	    }
	    if (s[i] == 'r') {
	    	g++;
	    }
	}
	while (a >= 1 && b >= 2 && c >= 1 && d >= 1 && e >= 2 && f >= 1 && g >= 1) {
		cnt++;
		a--;
		b -= 2;
		c--;
		d--;
		e -= 2;
		f--;
		g--;
	}
	cout << cnt;
	return 0;
}


/* Alisher Rakhimberdi  */
/*     Hala Madrid     */
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <vector>
#include <string>
#include <queue>
#include <cmath>
#include <deque>
#include <ctime>
#include <stack>
#include <set>
#include <map>

#define f first
#define s second
#define ppb pop_back
#define pb push_back
#define mp make_pair
#define ll long long
#define ld long double
#define ull unsigned long long
#define sr(x) sort(x.begin(), x.end())
#define rv(x) reverse(x.begin(), x.end())
#define speed ios_base::sync_with_stdio(false)

using namespace std;

const int maxn = 1e5 + 123;
const ll inf = 1e9 + 123;
const ld INF = 1e12 + 123;
const int mod = 1e7 + 123;

string s;
int a, b, c, d, e, f, g, cnt;

int main() {
	cin >> s;
	for (int i = 0; i < s.size(); ++i) {
		if (s[i] == 'B') {
	   		a++;
	    }
	    if (s[i] == 'u') {
	   		b++;
	    }
	    if (s[i] == 'l') {
	    	c++;
	    }
	    if (s[i] == 'b') {
	    	d++;
	    }
	    if (s[i] == 'a') {
	    	e++;
	    }
	    if (s[i] == 's') {
	        f++;
	    }
	    if (s[i] == 'r') {
	    	g++;
	    }
	}
	while (a >= 1 && b >= 2 && c >= 1 && d >= 2 && e >= 2 && f >= 1 && g >= 1) {
		cnt++;
		a--;
		b -= 2;
		c--;
		d -= 2;
		e -= 2;
		f--;
		g--;
	}
	cout << cnt;
	return 0;
}


/* Alisher Rakhimberdi  */
/*     Hala Madrid     */
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <vector>
#include <string>
#include <queue>
#include <cmath>
#include <deque>
#include <ctime>
#include <stack>
#include <set>
#include <map>

#define f first
#define s second
#define ppb pop_back
#define pb push_back
#define mp make_pair
#define ll long long
#define ld long double
#define ull unsigned long long
#define sr(x) sort(x.begin(), x.end())
#define rv(x) reverse(x.begin(), x.end())
#define speed ios_base::sync_with_stdio(false)

using namespace std;

const int maxn = 1e5 + 123;
const ll inf = 1e9 + 123;
const ld INF = 1e12 + 123;
const int mod = 1e7 + 123;

string s;
ll a, b, c, d, e, f, g, cnt;

int main() {
	cin >> s;
	for (int i = 0; i <= s.size(); ++i) {
		if (s[i] == 'B') {
	   		a++;
	    }
	    if (s[i] == 'u') {
	   		b++;
	    }
	    if (s[i] == 'l') {
	    	c++;
	    }
	    if (s[i] == 'b') {
	    	d++;
	    }
	    if (s[i] == 'a') {
	    	e++;
	    }
	    if (s[i] == 's') {
	        f++;
	    }
	    if (s[i] == 'r') {
	    	g++;
	    }
	}
	while (a >= 1 && b >= 2 && c >= 1 && d >= 2 && e >= 2 && f >= 1 && g >= 1) {
		cnt++;
		a--;
		b -= 2;
		c--;
		d -= 2;
		e -= 2;
		f--;
		g--;
	}
	cout << cnt;
	return 0;
}


/* Alisher Rakhimberdi  */
/*     Hala Madrid     */
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <vector>
#include <string>
#include <queue>
#include <cmath>
#include <deque>
#include <ctime>
#include <stack>
#include <set>
#include <map>

#define f first
#define s second
#define ppb pop_back
#define pb push_back
#define mp make_pair
#define ll long long
#define ld long double
#define ull unsigned long long
#define sr(x) sort(x.begin(), x.end())
#define rv(x) reverse(x.begin(), x.end())
#define speed ios_base::sync_with_stdio(false)

using namespace std;

const int maxn = 1e5 + 123;
const ll inf = 1e9 + 123;
const ld INF = 1e12 + 123;
const int mod = 1e7 + 123;

string s;
ll a, b, c, d, e, f, g, cnt;

int main() {
	cin >> s;
	for (int i = 0; i < s.size(); ++i) {
		if (s[i] == 'B') {
	   		a++;
	    }
	    if (s[i] == 'u') {
	   		b++;
	    }
	    if (s[i] == 'l') {
	    	c++;
	    }
	    if (s[i] == 'b') {
	    	d++;
	    }
	    if (s[i] == 'a') {
	    	e++;
	    }
	    if (s[i] == 's') {
	        f++;
	    }
	    if (s[i] == 'r') {
	    	g++;
	    }
	}
	while (a >= 1 && b >= 2 && c >= 1 && d >= 2 && e >= 2 && f >= 1 && g >= 1) {
		cnt++;
		a--;
		b -= 2;
		c--;
		d -= 2;
		e -= 2;
		f--;
		g--;
	}
	cout << cnt;
	return 0;
}


/*	Alisher Rakhimberdi	*/
/*     Hala Madrid	   */
#include <iostream>
#include <cmath>
#include <iomanip>
#include <cstring>
#include <algorithm>
#include <cstdlib>
#include <map>
#include <set>
#include <vector>
#include <ctime>
#include <queue>
#include <deque>
#include <stack>
#define ll long long
#define pb push_back
#define ppb pop_back
#define speed ios_base::sync_with_stdio(false)
#define ld long double
#define f first
#define s second

using namespace std;

const int maxn = 1e5 + 123;
const int inf = 1e9 + 123;
const int mod = 1e7 + 123;
const ld INF = 1e9 + 123;

string s;
int cnt;

int main() {
	//freopen("in", "r", stdin);
	//freopen("out", "w", stdout);
	cin >> s;
	for (int i = 0; i < s.size(); ++i) {
		if (s[i] == 'B')
			cnt++;
		if (s[i] == 'u')
			cnt++;
		if (s[i] == 'l')
			cnt++;
		if (s[i] == 'a')
			cnt++;
		if (s[i] == 's')
			cnt++;
		if (s[i] == 'r')
			cnt++;
	}
	cout << cnt / 8;
	return 0;
}


#include<iostream>
#include<string>
#include<math.h>
#include<vector>
#include<algorithm>
#define MAX_N 200000
#define REP(i,n) for(auto i=0; i<(n); i++)
#define DEBUG(x) cout<< '>' << #x << ':'<< x << "\n";
#define FOR(i, a, b) for(int i =(a); i<=(b); i++)
#define FORD(i, a, b) for(int = (a); i>=(b); i--)
typedef long long i64;
typedef unsigned long long ui64;

using namespace std;

int main(){

	string page;
	cin>>page;
	int hm;
	int B = 0, u = 0, l = 0, b = 0, a = 0, s = 0, r =0;

	for(int i= 0; i< page.size(); i++){
		switch(page[i]){
			case 'B':
				B++;
				break;
			case 'u':
				u++;
				break;
			case 'l':
				l++;
			case 'b':
				b++;
				break;
			case 'a':
				a++;
				break;
			case 's':
				s++;
				break;
			case 'r':
				r++;
				break;
			default:
				break;
		}
	}

	/*
	DEBUG(B);
	DEBUG(u);
	DEBUG(l);
	DEBUG(b);
	DEBUG(a);
	DEBUG(s);
	DEBUG(r);
	*/

	int ans = 0;
	int init = B;

	for(int k= init; k>0; k-- ){
		if(B<= l && B<=b && B<=s && B<=r && 2*B<=a && u>=2*B){
			ans = B;
			break;
		}
		else{
			B--;
		}

	}

	cout<<ans;

	return 0;
}


#include<iostream>
#include<string>
#include<math.h>
#include<vector>
#include<algorithm>
#define MAX_N 200000
#define REP(i,n) for(auto i=0; i<(n); i++)
#define DEBUG(x) cout<< '>' << #x << ':'<< x << "\n";
#define FOR(i, a, b) for(int i =(a); i<=(b); i++)
#define FORD(i, a, b) for(int = (a); i>=(b); i--)
typedef long long i64;
typedef unsigned long long ui64;

using namespace std;

int main(){

	string page;
	cin>>page;
	int B = 0, u = 0, l = 0, b = 0, a = 0, s = 0, r =0;

	for(int i= 0; i< page.size(); i++){
		switch(page[i]){
			case 'B':
				B++;
				break;
			case 'u':
				u++;
				break;
			case 'l':
				l++;
			case 'b':
				b++;
				break;
			case 'a':
				a++;
				break;
			case 's':
				s++;
				break;
			case 'r':
				r++;
				break;
			default:
				break;
		}
	}

	int ans = B;
	ans = min(ans, u/2);
	ans= min(ans, l);
	ans= min(ans, a/2);
	ans= min(ans, s);
	ans= min(ans, r);

	cout<<ans;

	return 0;
}


#include<iostream>
#include<string>
#include<math.h>
#include<vector>
#include<algorithm>
#define MAX_N 200000
#define REP(i,n) for(auto i=0; i<(n); i++)
#define DEBUG(x) cout<< '>' << #x << ':'<< x << "\n";
#define FOR(i, a, b) for(int i =(a); i<=(b); i++)
#define FORD(i, a, b) for(int = (a); i>=(b); i--)
typedef long long i64;
typedef unsigned long long ui64;

using namespace std;

int main(){

	string page;
	cin>>page;
	int hm;
	int B = 0, u = 0, l = 0, b = 0, a = 0, s = 0, r =0;

	for(int i= 0; i< page.size(); i++){
		switch(page[i]){
			case 'B':
				B++;
				break;
			case 'u':
				u++;
				break;
			case 'l':
				l++;
			case 'b':
				b++;
				break;
			case 'a':
				a++;
				break;
			case 's':
				s++;
				break;
			case 'r':
				r++;
				break;
			default:
				break;
		}
	}

	/*
	DEBUG(B);
	DEBUG(u);
	DEBUG(l);
	DEBUG(b);
	DEBUG(a);
	DEBUG(s);
	DEBUG(r);
	*/

	int ans = 0;
	int init = B;

	for(int k= init; k>0; k-- ){
		if(2*B <= u && (u)<=2*l && l<=b && 2*b >= a && a>= 2*s && s<=r){
			ans = B;
			break;
		}
		else{
			B--;
		}

	}

	cout<<ans;

	return 0;
}


#include<iostream>
#include<string>
#include<math.h>
#include<vector>
#include<algorithm>
#define MAX_N 200000
#define REP(i,n) for(auto i=0; i<(n); i++)
#define DEBUG(x) cout<< '>' << #x << ':'<< x << "\n";
#define FOR(i, a, b) for(int i =(a); i<=(b); i++)
#define FORD(i, a, b) for(int = (a); i>=(b); i--)
typedef long long i64;
typedef unsigned long long ui64;

using namespace std;

int main(){

	string page;
	cin>>page;
	int B = 0, u = 0, l = 0, b = 0, a = 0, s = 0, r =0;

	for(int i= 0; i< page.size(); i++){

		char x = page[i];

		//DEBUG(page[i]);
		switch(x){
			case 'B':
				B++;
				break;
			case 'u':
				u++;
				break;
			case 'l':
				l++;
				break;
			case 'b':
				//DEBUG(b);
				b++;
				//DEBUG(b);
				break;
			case 'a':
				a++;
				break;
			case 's':
				s++;
				break;
			case 'r':
				r++;
				break;
			default:
				break;
		}
	}

	int ans = B;
	ans = min(ans, (int)floor(u/2));
	ans= min(ans, l);
	ans= min(ans, (int)floor(a/2));
	ans= min(ans, s);
	ans= min(ans, r);

	cout<<ans;

	return 0;
}


#include<iostream>
#include<string>
#include<math.h>
#include<vector>
#include<algorithm>
#define MAX_N 200000
#define REP(i,n) for(auto i=0; i<(n); i++)
#define DEBUG(x) cout<< '>' << #x << ':'<< x << "\n";
#define FOR(i, a, b) for(int i =(a); i<=(b); i++)
#define FORD(i, a, b) for(int = (a); i>=(b); i--)
typedef long long i64;
typedef unsigned long long ui64;

using namespace std;

int main(){

	string page;
	cin>>page;
	int B = 0, u = 0, l = 0, b = 0, a = 0, s = 0, r =0;

	for(int i= 0; i< page.size(); i++){
		switch(page[i]){
			case 'B':
				B++;
				break;
			case 'u':
				u++;
				break;
			case 'l':
				l++;
			case 'b':
				b++;
				break;
			case 'a':
				a++;
				break;
			case 's':
				s++;
				break;
			case 'r':
				r++;
				break;
			default:
				break;
		}
	}

	int ans= min(B,(u/2));
	ans= min(ans,l);
	ans= min(ans, b);
	ans= min(ans, a/2);
	ans= min(ans, s);
	ans= min(ans, r);

	cout<<ans;

	return 0;
}


#include<iostream>
#include<string>
#include<math.h>
#include<vector>
#include<algorithm>
#define MAX_N 200000
#define REP(i,n) for(auto i=0; i<(n); i++)
#define DEBUG(x) cout<< '>' << #x << ':'<< x << "\n";
#define FOR(i, a, b) for(int i =(a); i<=(b); i++)
#define FORD(i, a, b) for(int = (a); i>=(b); i--)
typedef long long i64;
typedef unsigned long long ui64;

using namespace std;

int main(){

	string page;
	cin>>page;
	int B = 0, u = 0, l = 0, b = 0, a = 0, s = 0, r =0;

	for(int i= 0; i< page.size(); i++){
		switch(page[i]){
			case 'B':
				B++;
				break;
			case 'u':
				u++;
				break;
			case 'l':
				l++;
			case 'b':
				b++;
				break;
			case 'a':
				a++;
				break;
			case 's':
				s++;
				break;
			case 'r':
				r++;
				break;
			default:
				break;
		}
	}

	int ans = B;
	ans = min(ans, (int)floor(u/2));
	ans= min(ans, l);
	ans= min(ans, (int)floor(a/2));
	ans= min(ans, s);
	ans= min(ans, r);

	cout<<ans;

	return 0;
}