diff --git a/java-kit/src/main/java/com/olexyn/field/kit/hacker/rank/problems/CatMouseABC.java b/java-kit/src/main/java/com/olexyn/field/kit/hacker/rank/problems/CatMouseABC.java
new file mode 100755
index 0000000..2f59a5a
--- /dev/null
+++ b/java-kit/src/main/java/com/olexyn/field/kit/hacker/rank/problems/CatMouseABC.java
@@ -0,0 +1,25 @@
+package com.olexyn.field.kit.hacker.rank.problems;
+
+public class CatMouseABC {
+
+
+    public static void main(String[] args) {
+
+    }
+
+
+
+    static String catAndMouse(int x, int y, int z) {
+
+        int dx = Math.abs(x - z);
+        int dy = Math.abs(y - z);
+        if (dx == dy) {
+            return "Mouse C";
+        }
+        if (dx < dy) {
+            return "Cat A";
+        }
+        return "Cat B";
+    }
+
+}
diff --git a/java-kit/src/main/java/com/olexyn/field/kit/hacker/rank/problems/KeysBudget.java b/java-kit/src/main/java/com/olexyn/field/kit/hacker/rank/problems/KeysBudget.java
new file mode 100755
index 0000000..7754957
--- /dev/null
+++ b/java-kit/src/main/java/com/olexyn/field/kit/hacker/rank/problems/KeysBudget.java
@@ -0,0 +1,30 @@
+package com.olexyn.field.kit.hacker.rank.problems;
+
+public class KeysBudget {
+
+
+    public static void main(String[] args) {
+
+    }
+
+
+
+    static int getMoneySpent(int[] keyboards, int[] drives, int b) {
+        int max = -1;
+
+        for (int k : keyboards) {
+            for (int d : drives) {
+                int sum = k + d;
+                if (sum <= b && sum > max) {
+                    max = sum;
+                }
+                if (max == b) {
+                    return max;
+                }
+            }
+        }
+        return max;
+
+    }
+
+}
diff --git a/java-kit/src/main/java/com/olexyn/field/kit/hacker/rank/problems/Valleys.java b/java-kit/src/main/java/com/olexyn/field/kit/hacker/rank/problems/Valleys.java
index 5c7d216..87441ee 100755
--- a/java-kit/src/main/java/com/olexyn/field/kit/hacker/rank/problems/Valleys.java
+++ b/java-kit/src/main/java/com/olexyn/field/kit/hacker/rank/problems/Valleys.java
@@ -5,26 +5,27 @@ public class Valleys {
 
     public static void main(String[] args) {
         countingValleys(
-            8,
-            "UDDDUDUU"
+            12,
+            "DDUUDDUDUUUD"
         );
-        System.out.println("hi");
     }
 
 
 
     public static int countingValleys(int steps, String path) {
         // Write your code here
+        int prevLevel = 0;
         int level = 0;
         int valleys = 0;
-        String[] paths = path.split("");
-        for (int i = 0; i < paths.length; i++) {
-            if (paths[i].equals("U")) {
+        for (String s : path.split("")) {
+            if (s.equals("U")) {
+                prevLevel = level;
                 level++;
             } else {
+                prevLevel = level;
                 level--;
             }
-            if (i != 0 && level == 0 && paths[i - 1].equals("U")) {
+            if (prevLevel == -1 && level == 0 && s.equals("U")) {
                 valleys++;
             }
         }
diff --git a/java-kit/src/main/java/org/example/App.java b/java-kit/src/main/java/org/example/App.java
deleted file mode 100644
index 5f21d2e..0000000
--- a/java-kit/src/main/java/org/example/App.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.example;
-
-/**
- * Hello world!
- *
- */
-public class App 
-{
-    public static void main( String[] args )
-    {
-        System.out.println( "Hello World!" );
-    }
-}