#include <iostream> //for cin
#include <random> //this
#include <math.h> //for floor
using namespace std;

double fRand(double fMin, double fMax)
{//random gen for double from stackoverflow
    double f = (double)rand() / RAND_MAX;
    return fMin + f * (fMax - fMin);
}

class array_member {    
    public: 
        double value;
        bool added;   
};

int main() {
    int seed = static_cast<int>(time(0));
    srand(seed);
    int arrSize = 0;
    int cond_C = 0;
    int val_cond_C = 0;
    int last_negative_element_index = 0;
    int val_cond_after_last = 0;
    array_member arr[100];
    do { //define array size
         cin >> arrSize;
    }   
    while (arrSize>100&&arrSize<=0);
    cin >> cond_C;
    cout.precision(6);
    double max = -1000;
    int max_index = 0;
    for (int i=0;i<arrSize;i++) {
        //arr.push_front();
        arr[i].added = false;
        if (rand() % 100 > 70) 
            arr[i].value = fRand(-100,100);
        else arr[i].value = rand() % 200-100;
        //value set
        if (arr[i].value>max) {
            max = arr[i].value; //finding max arr value
            max_index = i;        
        }
        arr[max_index].added = true;
        cout << arr[i].value << endl;    
        if (arr[i].value < cond_C) val_cond_C++;
        if (arr[i].value < 0) last_negative_element_index = i;
    }
    for (int i=last_negative_element_index;i<arrSize;i++) {
        if (arr[i].value > 0 && arr[i].value == floor(arr[i].value)) val_cond_after_last++;
    }    
    cout << "Elements lower than C: " << val_cond_C << endl;
    cout << "Natural array elements higher than 0 after last negative element: " <<val_cond_after_last<<endl;
    cout << "Modified array: " << endl << max << endl;
    for (int i=0;i<arrSize;i++) {
        if (!arr[i].added && i!=max_index && arr[i].value >= max*0.8 && arr[i].value <=max*1.2) {
            cout << arr[i].value << endl;
            arr[i].added = true;
        }        
    }
    for (int i=0;i<arrSize;i++)
        if (!arr[i].added) cout << arr[i].value << endl;
    return 0;
}