diff --git a/.idea/magicCards.iml b/.idea/magicCards.iml
index bc2cd87409057301f546d83bd548111b9a241cb1..f08604bb65b25149b195f9e9f282f9683a428592 100644
--- a/.idea/magicCards.iml
+++ b/.idea/magicCards.iml
@@ -1,8 +1,2 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<module type="CPP_MODULE" version="4">
-  <component name="NewModuleRootManager">
-    <content url="file://$MODULE_DIR$" />
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>
\ No newline at end of file
+<module classpath="CMake" type="CPP_MODULE" version="4" />
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/main.cpp b/main.cpp
index bc8f460d02aeb0695e7840121bc4caefe788a878..5e094c5697cc9ea2150152dca1b166e6f0ae81bf 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,6 +1,65 @@
 #include <iostream>
+#include <cstring>
+#include <algorithm>
+#include <string>
+
+class Cards {
+public:
+    Cards() = default;
+    Cards(std::string name, int mana, int cmc, std::string type, int count)
+            : m_name(std::move(name)), m_mana(mana), m_cmc(cmc), m_type(std::move(type)), m_count(count)
+    {}
+
+    const std::string& getName() const { return m_name; }
+    int getMana() const { return m_mana; }
+    int getCMC() const { return m_cmc; }
+    const std::string& getType() const { return m_type; }
+    int getCount() const { return m_count; }
+
+    void setName(const std::string& name) { m_name = name; }
+    void setMana(int mana) { m_mana = mana; }
+    void setCMC(int cmc) { m_cmc = cmc; }
+    void setType(const std::string& type) { m_type = type; }
+    void setCount(int count) { m_count = count; }
+
+private:
+    std::string m_name;
+    int m_mana;
+    int m_cmc;
+    std::string m_type;
+    int m_count;
+};
+
+int levenshteinDistance(const char *s1, const char *s2) {
+    const int len1 = std::strlen(s1);
+    const int len2 = std::strlen(s2);
+
+    int matrix[len1 + 1][len2 + 1];
+
+    for (int i = 0; i <= len1; i++) {
+        matrix[i][0] = i;
+    }
+    for (int j = 0; j <= len2; j++) {
+        matrix[0][j] = j;
+    }
+
+    for (int i = 1; i <= len1; i++) {
+        for (int j = 1; j <= len2; j++) {
+            const int cost = (s1[i - 1] == s2[j - 1]) ? 0 : 1;
+            matrix[i][j] = std::min({ matrix[i - 1][j] + 1,
+                                      matrix[i][j - 1] + 1,
+                                      matrix[i - 1][j - 1] + cost });
+        }
+    }
+    return matrix[len1][len2];
+}
 
 int main() {
-    std::cout << "Hello, World!" << std::endl;
+    const char* str1 = "kitten";
+    const char* str2 = "sitting";
+    const int distance = levenshteinDistance(str1, str2);
+
+    std::cout << distance << std::endl;
+
     return 0;
 }