diff --git a/main.cpp b/main.cpp
index 0b21543..4886934 100644
--- a/main.cpp
+++ b/main.cpp
@@ -3,41 +3,41 @@
 #include "histogram.h"
 #include "text.h"
 #include "svg.h"
-#include <curl/curl.h>
 using namespace std;
 
 struct Input {
     vector<double> numbers;
     size_t bin_count;
+    size_t scale_step;
 };
 
-Input input_data(istream& in, bool prompt) {
-    Input inp;
+Input input_data() {
+    Input in;
     size_t number_count;
-    if (prompt){
-        cerr << "Enter number count: ";
-    }
+    cerr << "Enter number count: ";
     cin >> number_count;
 
-    inp.numbers.resize(number_count);
-    if (prompt){
-                cerr << "Enter numbers: ";
-        }
+    in.numbers.resize(number_count);
+    cerr << "Enter numbers: ";
     for (size_t i = 0; i < number_count; i++) {
-        cin >> inp.numbers[i];
+        cin >> in.numbers[i];
     }
 
-    if (prompt) {
-            cerr << "Enter bin count: ";
+    cerr << "Enter bin count: ";
+    cin >> in.bin_count;
+
+    cerr << "Enter scale step (2-9): ";
+    cin >> in.scale_step;
+    if (in.scale_step < 2 || in.scale_step > 9) {
+        cerr << "ERROR: Invalid scale step\n";
     }
-    cin >> inp.bin_count;
-    return inp;
+
+    return in;
 }
 
 int main() {
-    curl_global_init(CURL_GLOBAL_ALL);
-    auto in = input_data(cin, true);
+    auto in = input_data();
     auto bins = make_histogram(in.numbers, in.bin_count);
-    show_histogram_svg(bins);
+    show_histogram_svg(bins, in.scale_step);
     return 0;
 }
diff --git a/svg.cpp b/svg.cpp
index f17f5a8..a8ad123 100644
--- a/svg.cpp
+++ b/svg.cpp
@@ -27,7 +27,35 @@ void svg_rect(double x, double y, double width, double height, string stroke = "
          << "' stroke='" << stroke << "' fill='" << fill << "' />\n";
 }
 
-void show_histogram_svg(const vector<size_t>& bins) {
+void draw_scale(double width, double height, double max_width, size_t step, double min, double max) {
+    const double BLOCK_WIDTH = 10;
+    const double SCALE_HEIGHT = 30;
+    const double TEXT_OFFSET = 20;
+
+    double scale_width = max_width;
+    double scale_x = width - max_width;
+    double scale_y = height - SCALE_HEIGHT;
+
+    // Draw scale line
+    svg_rect(scale_x, scale_y, scale_width, 2, "black", "black");
+
+    // Draw scale marks and labels
+    double step_size = scale_width / step;
+    for (size_t i = 0; i <= step; i++) {
+        double mark_x = scale_x + i * step_size;
+        svg_rect(mark_x, scale_y, 2, 10, "black", "black");
+
+        // Calculate value for label
+        double value = min + (max - min) * i / step;
+        string label = to_string(value);
+        if (label.size() > 4) {
+            label = label.substr(0, 4);
+        }
+        svg_text(mark_x - 10, scale_y + TEXT_OFFSET, label);
+    }
+}
+
+void show_histogram_svg(const vector<size_t>& bins, size_t scale_step) {
     if (bins.empty()) {
         cerr << "Error: Empty bins vector\n";
         return;
@@ -58,5 +86,7 @@ void show_histogram_svg(const vector<size_t>& bins) {
         top += BIN_HEIGHT;
     }
 
+    draw_scale(IMAGE_WIDTH, IMAGE_HEIGHT, MAX_WIDTH, scale_step, 0, max_count);
+
     svg_end();
 }
diff --git a/svg.h b/svg.h
index f48d806..5db2d19 100644
--- a/svg.h
+++ b/svg.h
@@ -2,8 +2,8 @@
 #define SVG_H_INCLUDED
 
 #include <vector>
-#include <cstddef> // Äëÿ size_t
+#include <cstddef> // Для size_t
 
-void show_histogram_svg(const std::vector<size_t>& bins);
+void show_histogram_svg(const std::vector<size_t>& bins, size_t scale_step);
 
 #endif // SVG_H_INCLUDED