diff --git a/src/mk/10.md b/src/mk/10.md
index cfc6c4b..f8aed68 100644
--- a/src/mk/10.md
+++ b/src/mk/10.md
@@ -3,7 +3,7 @@
 # Објектно ориентирано програмирање
 ## Аудиториска вежба 10 (Исклучоци)
 
-## 1. Производи
+## 1. Производи со попуст
 Дел од производите во една продавница по новата политика на продавницата мора да имаат одреден попуст. За таа цел во системот на продавницата потребно е да се моделира апстрактната класа Discount. Оваа класа како податок ги има курсевите на евра и долари во денари и методите кои мора секоја класа што ќе наследи од неа да ги имплементира:
 
     float discount_price();
@@ -230,100 +230,58 @@ Product{ name=parfem, price=3500}
 Vnesena e negativna vrednost za cena!
 ```
 
-## 2. Продукти со попуст
-Да се имплементира класа Product за која се чуваат името и цената. Да се имплементира апстрактна класа Discount во која има два чисто виртуелни методи за цена и за цена со попуст. Од овие класи да се изведат класите:
+## 2. Редови со самогласки во датотека
+Дадена е текстуална датотека "Primer.txt". Да се напише програма која ќе ја прочита датотеката и на екран ќе го отпечати бројот на редови во кои има повеќе од 10 самогласки, како и вкупниот број на самогласки во датотеката.
 
-FoodProduct за која дополнително се чува бројот на калории;
-
-DigitalProduct за која дополнително се чува големината (во MB)
+Пример. Ако датотеката "Primer.txt" ја има следнава содржина:
+```text
+Zdravo, kako si?
+Eve, dobro sum. A ti?
+I jas dobro. Kako se tvoite? Ima li neshto novo?
+Dobri se i tie. Si kupiv avtomobil.
+```
 
-Да се имплементира надворешна функција total_discount која ќе пресметува вкупен попуст на неколку продукти на попуст кои ги прима како аргумент.
+тогаш програмата треба да отпечати:
+```text
+Vkupno 2 reda imaat povekje od 10 samoglaski.
+Vo datotekata ima vkupno 42 samoglaski.
+```
 
 Решение:
 ```cpp
 #include <iostream>
-#include <cstring>
+#include <fstream>
+#include <ctype.h>
 using namespace std;
-class Discount {
-public:
-        virtual float getDiscount_price() = 0;
-        virtual float getPrice() = 0;
-};
-class Product {
-protected:
-        string name;
-        float price;
-public:
-        Product(string name = "", const float price = 0) {
-                this -> name = name;
-                this->price = price;
-        }
-        float getPrice() {
-                return price;
-        }
-};
 
-class DigitalProduct : public Product, public Discount {
-private:
-        float size;
-public:
-        DigitalProduct(string name = "", const float price = 0, const float size = 0): Product(name, price){
-                this->size = size;
-        }
-        // се препокриваат функциите од апстрактната класа
-        float getDiscount_price() {
-                // попустот е 10%
-                return 0.9 * getPrice();
-        }
-        // и двете класи Product и Discount имаат функција getPrice, која се
-        // препокрива во изведената. Оваа ја користи getPrice од Product
-        float getPrice() {
-                return Product::getPrice();
-        }
-
-};
-
-class FoodProduct : public Product, public Discount {
-private:
-        float callories;
-public:
-        FoodProduct(const char *name = "", const float price = 0, const float callories = 0) : Product(name, price) {
-                this->callories = callories;
-        }
-        float getDiscount_price() {
-                // попустот е 20%
-                return .8 * getPrice();
-        }
-        // и двете класи Product и Discount имаат функција getPrice, која се
-        // препокрива во изведената. Оваа ја користи getPrice од Product
-        float getPrice() {
-                return Product::getPrice();
-        }
-};
-
-float total_discount(Discount **d, int n) {
-        float price = 0;
-        for (int i = 0; i < n; ++i) {
-                // повик на функцијата getPrice од класата FoodProduct или
-                // DigitalProduct соодветно, затоа што во Discount функцијата е виртуелна
-                price += d[i]->getPrice();
-        }
-        float discount = 0;
-        for (int i = 0; i < n; ++i) {
-                discount += d[i]->getDiscount_price();
-        }
-        return price - discount;
+int e_samoglaska(char c){
+    c = tolower(c);
+    return (c == 'a') || (c == 'e') || (c == 'i') || (c == 'o') || (c == 'u');
 }
-int main() {
-        Discount **d = new Discount*[3];
-        d[0] = new FoodProduct("Cheese", 450, 1200);
-        d[1] = new FoodProduct("Wine", 780, 250);
-        d[2] = new DigitalProduct("WOW", 380, 400);
-        cout << "Difference: " << total_discount(d, 3) << endl;
-        for (int i = 0; i < 3; ++i) {
-                delete d[i];
+int main()
+{
+    ifstream fin("Primer.txt");
+    if(!fin.is_open()){
+        cout<<"Ne mozham da ja otvoram datotekata!"<<endl;
+        return -1;
+    }
+    char c;
+    int red = 0, vkupno = 0, samoglaski = 0;
+    while(fin.get(c))
+    {
+        if(e_samoglaska(c)){
+            ++samoglaski;
+            ++vkupno;
+        }
+        if(c == '\n') {
+            if(samoglaski > 10){
+                red++;
+            }
+            samoglaski = 0;
         }
-        delete[] d;
-        return 0;
+    }
+    cout<<"Vkupno "<<red<<" reda imaat povekje od 10 samoglaski"<<endl;
+    cout<<"Vo datotekata ima vkupno "<<vkupno<<" samoglaski."<<endl;
+    return 0;
 }
 ```