From 156716d8c21290dcf47a7bca6c0240412a09f35f Mon Sep 17 00:00:00 2001 From: Radu Nichita Date: Fri, 17 Apr 2026 01:24:11 +0300 Subject: [PATCH] Add skel for lab06 Signed-off-by: Radu Nichita --- algorithms/lab06/check | 6 +- .../sol1_bfs.cpp => 01-bfs/01-bfs.cpp} | 8 - algorithms/lab06/cpp/02-dfs/02-dfs.cpp | 89 + .../03-topsort_bfs.cpp} | 5 - .../03-topsort_dfs.cpp} | 5 - algorithms/lab06/cpp/task-3/sol1_dfs.cpp | 122 - algorithms/lab06/cpp/task-4/sol1_bfs.cpp | 117 - .../src/sol1_bfs.java => 01-bfs/src/Bfs.java} | 9 +- algorithms/lab06/java/02-dfs/src/Dfs.java | 110 + .../src/TopsortBfs.java} | 7 +- .../src/TopsortDfs.java} | 7 +- .../lab06/java/task-3/src/sol1_dfs.java | 144 - .../lab06/java/task-4/src/sol1_bfs.java | 136 - algorithms/lab06/python/01-bfs/01-bfs.py | 95 + algorithms/lab06/python/02-dfs/02-dfs.py | 79 + .../lab06/python/03-topsort/03-topsort_bfs.py | 102 + .../lab06/python/03-topsort/03-topsort_dfs.py | 86 + algorithms/lab06/rust/01-bfs/01-bfs.rs | 113 + algorithms/lab06/rust/02-dfs/02-dfs.rs | 91 + .../lab06/rust/03-topsort/03-topsort_bfs.rs | 119 + .../lab06/rust/03-topsort/03-topsort_dfs.rs | 100 + .../lab06/tests/{task-1 => 01-bfs}/1.in | 0 .../lab06/tests/{task-1 => 01-bfs}/1.ref | 0 .../lab06/tests/{task-1 => 01-bfs}/10.in | 0 .../lab06/tests/{task-1 => 01-bfs}/10.ref | 0 .../lab06/tests/{task-1 => 01-bfs}/2.in | 0 .../lab06/tests/{task-1 => 01-bfs}/2.ref | 0 .../lab06/tests/{task-1 => 01-bfs}/3.in | 0 .../lab06/tests/{task-1 => 01-bfs}/3.ref | 0 .../lab06/tests/{task-1 => 01-bfs}/4.in | 0 .../lab06/tests/{task-1 => 01-bfs}/4.ref | 0 .../lab06/tests/{task-1 => 01-bfs}/5.in | 0 .../lab06/tests/{task-1 => 01-bfs}/5.ref | 0 .../lab06/tests/{task-1 => 01-bfs}/6.in | 0 .../lab06/tests/{task-1 => 01-bfs}/6.ref | 0 .../lab06/tests/{task-1 => 01-bfs}/7.in | 0 .../lab06/tests/{task-1 => 01-bfs}/7.ref | 0 .../lab06/tests/{task-1 => 01-bfs}/8.in | 0 .../lab06/tests/{task-1 => 01-bfs}/8.ref | 0 .../lab06/tests/{task-1 => 01-bfs}/9.in | 0 .../lab06/tests/{task-1 => 01-bfs}/9.ref | 0 algorithms/lab06/tests/01-bfs/check_task | 4 + .../lab06/tests/{task-1 => 01-bfs}/custom.in | 0 .../lab06/tests/{task-1 => 01-bfs}/custom.ref | 0 algorithms/lab06/tests/02-dfs/1.in | 26 + algorithms/lab06/tests/02-dfs/1.ref | 1 + algorithms/lab06/tests/02-dfs/10.in | 2701 +++ algorithms/lab06/tests/02-dfs/10.ref | 1 + algorithms/lab06/tests/02-dfs/2.in | 101 + algorithms/lab06/tests/02-dfs/2.ref | 1 + algorithms/lab06/tests/02-dfs/3.in | 1 + algorithms/lab06/tests/02-dfs/3.ref | 1 + algorithms/lab06/tests/02-dfs/4.in | 20101 ++++++++++++++++ algorithms/lab06/tests/02-dfs/4.ref | 1 + algorithms/lab06/tests/02-dfs/5.in | 101 + algorithms/lab06/tests/02-dfs/5.ref | 1 + algorithms/lab06/tests/02-dfs/6.in | 301 + algorithms/lab06/tests/02-dfs/6.ref | 1 + algorithms/lab06/tests/02-dfs/7.in | 701 + algorithms/lab06/tests/02-dfs/7.ref | 1 + algorithms/lab06/tests/02-dfs/8.in | 1701 ++ algorithms/lab06/tests/02-dfs/8.ref | 1 + algorithms/lab06/tests/02-dfs/9.in | 2701 +++ algorithms/lab06/tests/02-dfs/9.ref | 1 + algorithms/lab06/tests/02-dfs/check_task | 4 + .../lab06/tests/{task-2 => 02-dfs}/custom.in | 0 .../lab06/tests/{task-2 => 02-dfs}/custom.ref | 0 .../lab06/tests/{task-2 => 03-topsort}/1.in | 0 .../lab06/tests/{task-2 => 03-topsort}/1.ref | 0 .../lab06/tests/{task-2 => 03-topsort}/10.in | 0 .../lab06/tests/{task-2 => 03-topsort}/10.ref | 0 .../lab06/tests/{task-2 => 03-topsort}/2.in | 0 .../lab06/tests/{task-2 => 03-topsort}/2.ref | 0 .../lab06/tests/{task-2 => 03-topsort}/3.in | 0 .../lab06/tests/{task-2 => 03-topsort}/3.ref | 0 .../lab06/tests/{task-2 => 03-topsort}/4.in | 0 .../lab06/tests/{task-2 => 03-topsort}/4.ref | 0 .../lab06/tests/{task-2 => 03-topsort}/5.in | 0 .../lab06/tests/{task-2 => 03-topsort}/5.ref | 0 .../lab06/tests/{task-2 => 03-topsort}/6.in | 0 .../lab06/tests/{task-2 => 03-topsort}/6.ref | 0 .../lab06/tests/{task-2 => 03-topsort}/7.in | 0 .../lab06/tests/{task-2 => 03-topsort}/7.ref | 0 .../lab06/tests/{task-2 => 03-topsort}/8.in | 0 .../lab06/tests/{task-2 => 03-topsort}/8.ref | 0 .../lab06/tests/{task-2 => 03-topsort}/9.in | 0 .../lab06/tests/{task-2 => 03-topsort}/9.ref | 0 .../tests/{task-2 => 03-topsort}/check_task | 0 algorithms/lab06/tests/03-topsort/custom.in | 0 algorithms/lab06/tests/03-topsort/custom.ref | 0 algorithms/lab06/tests/task-1/check_task | 1 - 91 files changed, 29443 insertions(+), 561 deletions(-) rename algorithms/lab06/cpp/{task-1/sol1_bfs.cpp => 01-bfs/01-bfs.cpp} (88%) create mode 100644 algorithms/lab06/cpp/02-dfs/02-dfs.cpp rename algorithms/lab06/cpp/{task-2/sol2_bfs.cpp => 03-topsort/03-topsort_bfs.cpp} (94%) rename algorithms/lab06/cpp/{task-2/sol1_dfs.cpp => 03-topsort/03-topsort_dfs.cpp} (93%) delete mode 100644 algorithms/lab06/cpp/task-3/sol1_dfs.cpp delete mode 100644 algorithms/lab06/cpp/task-4/sol1_bfs.cpp rename algorithms/lab06/java/{task-1/src/sol1_bfs.java => 01-bfs/src/Bfs.java} (91%) create mode 100644 algorithms/lab06/java/02-dfs/src/Dfs.java rename algorithms/lab06/java/{task-2/src/sol2_bfs.java => 03-topsort/src/TopsortBfs.java} (94%) rename algorithms/lab06/java/{task-2/src/sol1_dfs.java => 03-topsort/src/TopsortDfs.java} (94%) delete mode 100644 algorithms/lab06/java/task-3/src/sol1_dfs.java delete mode 100644 algorithms/lab06/java/task-4/src/sol1_bfs.java create mode 100644 algorithms/lab06/python/01-bfs/01-bfs.py create mode 100644 algorithms/lab06/python/02-dfs/02-dfs.py create mode 100644 algorithms/lab06/python/03-topsort/03-topsort_bfs.py create mode 100644 algorithms/lab06/python/03-topsort/03-topsort_dfs.py create mode 100644 algorithms/lab06/rust/01-bfs/01-bfs.rs create mode 100644 algorithms/lab06/rust/02-dfs/02-dfs.rs create mode 100644 algorithms/lab06/rust/03-topsort/03-topsort_bfs.rs create mode 100644 algorithms/lab06/rust/03-topsort/03-topsort_dfs.rs rename algorithms/lab06/tests/{task-1 => 01-bfs}/1.in (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/1.ref (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/10.in (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/10.ref (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/2.in (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/2.ref (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/3.in (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/3.ref (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/4.in (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/4.ref (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/5.in (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/5.ref (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/6.in (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/6.ref (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/7.in (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/7.ref (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/8.in (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/8.ref (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/9.in (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/9.ref (100%) create mode 100755 algorithms/lab06/tests/01-bfs/check_task rename algorithms/lab06/tests/{task-1 => 01-bfs}/custom.in (100%) rename algorithms/lab06/tests/{task-1 => 01-bfs}/custom.ref (100%) create mode 100644 algorithms/lab06/tests/02-dfs/1.in create mode 100644 algorithms/lab06/tests/02-dfs/1.ref create mode 100644 algorithms/lab06/tests/02-dfs/10.in create mode 100644 algorithms/lab06/tests/02-dfs/10.ref create mode 100644 algorithms/lab06/tests/02-dfs/2.in create mode 100644 algorithms/lab06/tests/02-dfs/2.ref create mode 100644 algorithms/lab06/tests/02-dfs/3.in create mode 100644 algorithms/lab06/tests/02-dfs/3.ref create mode 100644 algorithms/lab06/tests/02-dfs/4.in create mode 100644 algorithms/lab06/tests/02-dfs/4.ref create mode 100644 algorithms/lab06/tests/02-dfs/5.in create mode 100644 algorithms/lab06/tests/02-dfs/5.ref create mode 100644 algorithms/lab06/tests/02-dfs/6.in create mode 100644 algorithms/lab06/tests/02-dfs/6.ref create mode 100644 algorithms/lab06/tests/02-dfs/7.in create mode 100644 algorithms/lab06/tests/02-dfs/7.ref create mode 100644 algorithms/lab06/tests/02-dfs/8.in create mode 100644 algorithms/lab06/tests/02-dfs/8.ref create mode 100644 algorithms/lab06/tests/02-dfs/9.in create mode 100644 algorithms/lab06/tests/02-dfs/9.ref create mode 100755 algorithms/lab06/tests/02-dfs/check_task rename algorithms/lab06/tests/{task-2 => 02-dfs}/custom.in (100%) rename algorithms/lab06/tests/{task-2 => 02-dfs}/custom.ref (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/1.in (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/1.ref (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/10.in (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/10.ref (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/2.in (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/2.ref (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/3.in (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/3.ref (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/4.in (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/4.ref (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/5.in (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/5.ref (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/6.in (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/6.ref (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/7.in (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/7.ref (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/8.in (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/8.ref (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/9.in (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/9.ref (100%) rename algorithms/lab06/tests/{task-2 => 03-topsort}/check_task (100%) create mode 100644 algorithms/lab06/tests/03-topsort/custom.in create mode 100644 algorithms/lab06/tests/03-topsort/custom.ref delete mode 120000 algorithms/lab06/tests/task-1/check_task diff --git a/algorithms/lab06/check b/algorithms/lab06/check index 284fbcf..9f2e527 100755 --- a/algorithms/lab06/check +++ b/algorithms/lab06/check @@ -1,9 +1,9 @@ #!/usr/bin/env bash # SPDX-License-Identifier: BSD-3-Clause -NUM_TASKS=4 -TASKS=(task-1 task-2 task-3 task-4) -NUM_TESTS=(10 10 0 0) +NUM_TASKS=3 +TASKS=(01-bfs 02-dfs 03-topsort) +NUM_TESTS=(10 10 10) TIMEOUT_CPP=1 TIMEOUT_JAVA=1 diff --git a/algorithms/lab06/cpp/task-1/sol1_bfs.cpp b/algorithms/lab06/cpp/01-bfs/01-bfs.cpp similarity index 88% rename from algorithms/lab06/cpp/task-1/sol1_bfs.cpp rename to algorithms/lab06/cpp/01-bfs/01-bfs.cpp index 8082529..46ec98f 100644 --- a/algorithms/lab06/cpp/task-1/sol1_bfs.cpp +++ b/algorithms/lab06/cpp/01-bfs/01-bfs.cpp @@ -44,14 +44,6 @@ class Task { } vector get_result() { - // TODO: Faceti un BFS care sa construiasca in d valorile cerute: - // * d[node] = numarul minim de muchii de parcurs de la nodul `source` la nodul `node` - // * d[source] = 0 - // * d[node] = -1, daca nu exista drum de la source la node - // ******* - // ATENTIE: nodurile sunt indexate de la 1 la n. - // ******* - return bfs(source); } diff --git a/algorithms/lab06/cpp/02-dfs/02-dfs.cpp b/algorithms/lab06/cpp/02-dfs/02-dfs.cpp new file mode 100644 index 0000000..d83bbb5 --- /dev/null +++ b/algorithms/lab06/cpp/02-dfs/02-dfs.cpp @@ -0,0 +1,89 @@ +// SPDX-License-Identifier: BSD-3-Clause + +#include +#include +#include +#include +using namespace std; + +class Task { +public: + void solve() { + read_input(); + write_output(get_result()); + } + +private: + // numarul maxim de noduri + static constexpr int NMAX = (int)1e5 + 5; // 10^5 + 5 = 100.005 + + // n = numar de noduri, m = numar de muchii/arce + int n, m; + + // adj[node] = lista de adiacenta a nodului node + // exemplu: daca adj[node] = {..., neigh, ...} => exista muchia (node, neigh) + vector adj[NMAX]; + + void read_input() { + ifstream fin("in"); + fin >> n >> m; + for (int i = 1, x, y; i <= m; i++) { + // muchie (x, y) + fin >> x >> y; + adj[x].push_back(y); + adj[y].push_back(x); + } + fin.close(); + } + + int get_result() { + return solve_dfs(); + } + + // Complexitate: O(n + m) + int solve_dfs() { + int connected_components = 0; + vector visited(n + 1, 0); + + // pentru fiecare nod + for (int node = 1; node <= n; node++) { + // daca nodul este nevizitat, pornim o parcurgere + if (visited[node] == 0) { + connected_components++; + dfs(node, visited); + } + } + + return connected_components; + } + + // porneste o parcurgere DFS din node + // foloseste vectorul visited pentru a marca nodurile vizitate + void dfs(int node, vector& visited) { + visited[node] = 1; // marchez nodul ca fiind vizitat + + // parcurg vecinii + for (auto& neigh : adj[node]) { + if (visited[neigh] == 0) { + dfs(neigh, visited); + } + } + } + + void write_output(int result) { + ofstream fout("out"); + fout << result << '\n'; + fout.close(); + } +}; + +// [ATENTIE] NU modifica functia main! +int main() { + std::unique_ptr task {new (nothrow) Task()}; + if (!task) { + std::cerr << "new failed: WTF are you doing? Throw your PC!\n"; + return -1; + } + task->solve(); + return 0; +} diff --git a/algorithms/lab06/cpp/task-2/sol2_bfs.cpp b/algorithms/lab06/cpp/03-topsort/03-topsort_bfs.cpp similarity index 94% rename from algorithms/lab06/cpp/task-2/sol2_bfs.cpp rename to algorithms/lab06/cpp/03-topsort/03-topsort_bfs.cpp index 6866e3b..d987156 100644 --- a/algorithms/lab06/cpp/task-2/sol2_bfs.cpp +++ b/algorithms/lab06/cpp/03-topsort/03-topsort_bfs.cpp @@ -44,11 +44,6 @@ class Task { } vector get_result() { - // TODO: Faceti sortarea topologica a grafului stocat cu liste de adiacenta din adj. - // ******* - // ATENTIE: nodurile sunt indexate de la 1 la n. - // ******* - return solve_bfs(); } diff --git a/algorithms/lab06/cpp/task-2/sol1_dfs.cpp b/algorithms/lab06/cpp/03-topsort/03-topsort_dfs.cpp similarity index 93% rename from algorithms/lab06/cpp/task-2/sol1_dfs.cpp rename to algorithms/lab06/cpp/03-topsort/03-topsort_dfs.cpp index 7ea399d..4db06c0 100644 --- a/algorithms/lab06/cpp/task-2/sol1_dfs.cpp +++ b/algorithms/lab06/cpp/03-topsort/03-topsort_dfs.cpp @@ -36,11 +36,6 @@ class Task { } vector get_result() { - // TODO: Faceti sortarea topologica a grafului stocat cu liste de adiacenta din adj. - // ******* - // ATENTIE: nodurile sunt indexate de la 1 la n. - // ******* - return solve_dfs(); } diff --git a/algorithms/lab06/cpp/task-3/sol1_dfs.cpp b/algorithms/lab06/cpp/task-3/sol1_dfs.cpp deleted file mode 100644 index 564dad4..0000000 --- a/algorithms/lab06/cpp/task-3/sol1_dfs.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// SPDX-License-Identifier: BSD-3-Clause - -#include -#include -#include -#include -#include -#include -#include - -using namespace std; - -class Task { -public: - void solve() { - read_input(); - write_output(get_result()); - } - -private: - // numarul maxim de noduri - static constexpr int NMAX = (int)1e5 + 5; // 10^5 + 5 = 100.005 - - // n = numar de noduri, m = numar de muchii/arce - int n, m; - - // adj[node] = lista de adiacenta a nodului node - // perechea (neigh, w) semnifica arc de la node la neigh de cost w - // FOLLOW-UP : Se poate o stocare mai eficienta pentru aceasta problema? - // Hint: Fiecare nod are exact un vecin (putem folosi un hashtable). - vector> adj[NMAX]; - - // Gradul intern al nodurilor. - vector in_degree; - - void read_input() { - cin >> n >> m; - - in_degree.resize(n + 1); - for (int i = 0; i < m; ++i) { - int x, y, p; - cin >> x >> y >> p; - adj[x].push_back({y, p}); - in_degree[y]++; - } - } - - vector, int>> get_result() { - return solve_dfs(); - } - - // Complexitate: O(n + m + n * log n): parcurgerea DFS - O(n + m), sortare - O(n log n) - // Observatie: Parcurgerea poate fi inlocuita si cu BFS. - vector, int>> solve_dfs() { - // vectorul rezultat, contine lanturile si costul minim pentru ele - vector, int>> all_components; - - // visited[node] = 1 daca node a fost deja vizitat, 0 altfel - vector visited(n + 1, 0); - - // pentru fiecare nod - for (int node = 1; node <= n; ++node) { - // Incepem un lant nou doar daca nodul nu a fost vizitat - // si are gradul intern 0. - if (!visited[node] && in_degree[node] == 0) { - vector current_component; - - int min_cost = numeric_limits::max(); - dfs(node, visited, current_component, min_cost); - - // O componenta cu un singur nod are costul minim 0 - if (current_component.size() == 1) { - min_cost = 0; - } - all_components.push_back({current_component, min_cost}); - } - } - - // Sortare crescatoare dupa start - sort(all_components.begin(), all_components.end(), - [](auto &a, auto &b) { return a.first[0] < b.first[0]; }); - - return all_components; - } - - // porneste o parcurgere DFS din node - // foloseste vectorul visited pentru a marca nodurile vizitate - void dfs(int node, vector& visited, vector& current_component, int& min_cost) { - visited[node] = 1; // marchez nodul ca fiind vizitat - current_component.push_back(node); // adaug nodul la componenta curenta - - // parcurg vecinii - for (auto& [neigh, cost] : adj[node]) { - if (!visited[neigh]) { - min_cost = min(min_cost, cost); - dfs(neigh, visited, current_component, min_cost); - } - } - } - - void write_output(vector, int>>&& all_components) { - cout << all_components.size() << "\n"; - for (const auto& [nodes, cost] : all_components) { - if (nodes.size() != 1) { - cout << nodes.front() << " " << nodes.back() << " " << cost << "\n"; - } else { - cout << nodes[0] << " " << nodes[0] << " " << cost << "\n"; - } - } - } -}; - -// [ATENTIE] NU modifica functia main! -int main() { - std::unique_ptr task {new (nothrow) Task()}; - if (!task) { - std::cerr << "new failed: WTF are you doing? Throw your PC!\n"; - return -1; - } - task->solve(); - return 0; -} diff --git a/algorithms/lab06/cpp/task-4/sol1_bfs.cpp b/algorithms/lab06/cpp/task-4/sol1_bfs.cpp deleted file mode 100644 index ad5557e..0000000 --- a/algorithms/lab06/cpp/task-4/sol1_bfs.cpp +++ /dev/null @@ -1,117 +0,0 @@ -// SPDX-License-Identifier: BSD-3-Clause - -#include -#include -#include -#include -#include -using namespace std; - -class Task { -public: - void solve() { - read_input(); - write_output(get_result()); - } - -private: - // numarul maxim de noduri - static constexpr int NMAX = (int)1e6 + 5; // 10^6 + 5 = 1.000.005 - - // n = numar de noduri, m = numar de muchii/arce - int n, m; - - // p = numarul de taverne - int p; - - // adj_trans[node] = lista de adiacenta a nodului node in graful transpus - // exemplu: daca adj_trans[node] = {..., neigh, ...} => exista arcul (node, neigh) in graful transpus - vector adj_trans[NMAX]; - - // vector ce reține nodurile din taverne - vector taverns; - - void read_input() { - ifstream fin("berarii2.in"); - fin >> n >> m >> p; - - // Stocam graful transpus, vrem sa vedem intersectiile - // unde nu putem ajunge pornind din berarii. - for (int i = 1, x, y; i <= m; i++) { - fin >> x >> y; - adj_trans[y].push_back(x); - } - - taverns.resize(p); - for (int i = 0; i < p; ++i) { - fin >> taverns[i]; - } - - fin.close(); - } - - vector get_result() { return bfs(taverns); } - - // Complexitate: O(n + m) - vector bfs(std::vector& sources) { - // visited[node] = retine daca nodul poate fi vizitat pornind - // dintr-o berarie - vector visited(n + 1, 0); - - // vector care retine nodurile care nu pot fi atinse pornind dintr-o taverna - vector not_reachable; - - // Step 0: declaram o coada in care putem baga noduri - queue q; - - // Step 1: pasul initial: pun in coada TOATE nodurile din berarii - for (int tavern : taverns) { - q.push(tavern); - visited[tavern] = true; - } - - // Step 2: cat timp NU am parcurs toate nodurile - while (!q.empty()) { - // Step 2.1: extragem si procesam urmatorul nod din coada - int node = q.front(); - q.pop(); - - // Step 2.2: parcurgem vecinii lui node pe graful transpus - for (int adj : adj_trans[node]) { - if (!visited[adj]) { - visited[adj] = true; - q.push(adj); - } - } - } - - // Step 3: Stochez nodurile la care nu am putut ajunge - for (int i = 1; i <= n; ++i) { - if (!visited[i]) { - not_reachable.push_back(i); - } - } - - return not_reachable; - } - - void write_output(const vector& not_reachable) { - ofstream fout("berarii2.out"); - fout << not_reachable.size() << "\n"; - for (int node : not_reachable) { - fout << node << "\n"; - } - fout.close(); - } -}; - -// [ATENTIE] NU modifica functia main! -int main() { - std::unique_ptr task {new (nothrow) Task()}; - if (!task) { - std::cerr << "new failed: WTF are you doing? Throw your PC!\n"; - return -1; - } - task->solve(); - return 0; -} diff --git a/algorithms/lab06/java/task-1/src/sol1_bfs.java b/algorithms/lab06/java/01-bfs/src/Bfs.java similarity index 91% rename from algorithms/lab06/java/task-1/src/sol1_bfs.java rename to algorithms/lab06/java/01-bfs/src/Bfs.java index 38f7e28..779819a 100644 --- a/algorithms/lab06/java/task-1/src/sol1_bfs.java +++ b/algorithms/lab06/java/01-bfs/src/Bfs.java @@ -12,7 +12,7 @@ import java.util.Scanner; import java.util.Queue; -public class sol1_bfs { +public class Bfs { static class Task { public static final String INPUT_FILE = "in"; public static final String OUTPUT_FILE = "out"; @@ -66,13 +66,6 @@ private void readInput() { } private int[] getResult() { - // TODO: Faceti un BFS care sa construiasca in d valorile: - // * d[node] = numarul minim de muchii de parcurs de la nodul `source` la nodul `node` - // * d[source] = 0 - // * d[node] = -1, daca nu exista drum de la source la node - // ******* - // ATENTIE: nodurile sunt indexate de la 1 la n. - // ******* return bfs(source); } diff --git a/algorithms/lab06/java/02-dfs/src/Dfs.java b/algorithms/lab06/java/02-dfs/src/Dfs.java new file mode 100644 index 0000000..999ed26 --- /dev/null +++ b/algorithms/lab06/java/02-dfs/src/Dfs.java @@ -0,0 +1,110 @@ +// SPDX-License-Identifier: BSD-3-Clause + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Scanner; +import java.util.ArrayList; + +public class Dfs { + static class Task { + public static final String INPUT_FILE = "in"; + public static final String OUTPUT_FILE = "out"; + + // numarul maxim de noduri + public static final int NMAX = (int)1e5 + 5; // 10^5 + 5 = 100.005 + + // n = numar de noduri, m = numar de muchii/arce + int n, m; + + // adj[node] = lista de adiacenta a nodului node + // exemplu: daca adj[node] = {..., neigh, ...} => exista muchia (node, neigh) + @SuppressWarnings("unchecked") + ArrayList adj[] = new ArrayList[NMAX]; + + public void solve() { + readInput(); + writeOutput(getResult()); + } + + private void readInput() { + try { + Scanner sc = new Scanner(new BufferedReader(new FileReader( + INPUT_FILE))); + n = sc.nextInt(); + m = sc.nextInt(); + + for (int node = 1; node <= n; node++) { + adj[node] = new ArrayList<>(); + } + + for (int i = 1, x, y; i <= m; i++) { + // muchie (x, y) + x = sc.nextInt(); + y = sc.nextInt(); + adj[x].add(y); + adj[y].add(x); + } + + sc.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private int getResult() { + return solveDfs(); + } + + // Complexitate: O(n + m) + private int solveDfs() { + int connectedComponents = 0; + + // visited[node] = 1 daca node a fost deja vizitat, 0 altfel + int[] visited = new int[n + 1]; + + // pentru fiecare nod + for (int node = 1; node <= n; node++) { + // daca nodul este nevizitat, pornim o parcurgere + if (visited[node] == 0) { + connectedComponents++; + dfs(node, visited); + } + } + + return connectedComponents; + } + + // porneste o parcurgere DFS din node + // foloseste vectorul visited pentru a marca nodurile vizitate + private void dfs(int node, int[] visited) { + visited[node] = 1; // marchez nodul ca fiind vizitat + + // parcurg vecinii + for (Integer neigh : adj[node]) { + if (visited[neigh] == 0) { + dfs(neigh, visited); + } + } + } + + private void writeOutput(int result) { + try { + PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter( + OUTPUT_FILE))); + pw.printf("%d\n", result); + pw.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + // [ATENTIE] NU modifica functia main! + public static void main(String[] args) { + new Task().solve(); + } +} diff --git a/algorithms/lab06/java/task-2/src/sol2_bfs.java b/algorithms/lab06/java/03-topsort/src/TopsortBfs.java similarity index 94% rename from algorithms/lab06/java/task-2/src/sol2_bfs.java rename to algorithms/lab06/java/03-topsort/src/TopsortBfs.java index 2efbaed..36bea32 100644 --- a/algorithms/lab06/java/task-2/src/sol2_bfs.java +++ b/algorithms/lab06/java/03-topsort/src/TopsortBfs.java @@ -13,7 +13,7 @@ import java.util.Queue; import java.util.LinkedList; -public class sol2_bfs { +public class TopsortBfs { static class Task { public static final String INPUT_FILE = "in"; public static final String OUTPUT_FILE = "out"; @@ -80,11 +80,6 @@ private void writeOutput(ArrayList topsort) { } private ArrayList getResult() { - // TODO: Faceti sortarea topologica a grafului stocat cu liste de adiacenta din adj. - // ******* - // ATENTIE: nodurile sunt indexate de la 1 la n. - // ******* - return solve_bfs(); } diff --git a/algorithms/lab06/java/task-2/src/sol1_dfs.java b/algorithms/lab06/java/03-topsort/src/TopsortDfs.java similarity index 94% rename from algorithms/lab06/java/task-2/src/sol1_dfs.java rename to algorithms/lab06/java/03-topsort/src/TopsortDfs.java index b8007d2..87b31fb 100644 --- a/algorithms/lab06/java/task-2/src/sol1_dfs.java +++ b/algorithms/lab06/java/03-topsort/src/TopsortDfs.java @@ -10,7 +10,7 @@ import java.util.ArrayList; import java.util.Collections; -public class sol1_dfs { +public class TopsortDfs { static class Task { public static final String INPUT_FILE = "in"; public static final String OUTPUT_FILE = "out"; @@ -70,11 +70,6 @@ private void writeOutput(ArrayList topsort) { } private ArrayList getResult() { - // TODO: Faceti sortarea topologica a grafului stocat cu liste de adiacenta din adj. - // ******* - // ATENTIE: nodurile sunt indexate de la 1 la n. - // ******* - return solveDfs(); } diff --git a/algorithms/lab06/java/task-3/src/sol1_dfs.java b/algorithms/lab06/java/task-3/src/sol1_dfs.java deleted file mode 100644 index f5d1bca..0000000 --- a/algorithms/lab06/java/task-3/src/sol1_dfs.java +++ /dev/null @@ -1,144 +0,0 @@ -// SPDX-License-Identifier: BSD-3-Clause - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.Scanner; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -public class sol1_dfs { - - // Clasa generica pair. De exemplu, vom folosi Pair - // pentru a reprezenta o muchie catre un nod de un anumit cost. - private static class Pair { - T first; - U second; - - Pair(T first, U second) { - this.first = first; - this.second = second; - } - } - - static class Task { - // numarul maxim de noduri - public static final int NMAX = (int)1e5 + 5; // 10^5 + 5 = 100.005 - - // n = numar de noduri, m = numar de muchii/arce - int n, m; - - // adj[node] = lista de adiacenta a nodului node - // perechea (neigh, w) semnifica arc de la node la neigh de cost w - // FOLLOW-UP : Se poate o stocare mai eficienta pentru aceasta problema? - // Hint: Fiecare nod are exact un vecin (putem folosi un hashtable). - @SuppressWarnings("unchecked") - ArrayList> adj[] = new ArrayList[NMAX]; - - // Gradul intern al nodurilor. - int[] in_degree; - - public void solve() { - readInput(); - writeOutput(getResult()); - } - - private void readInput() { - Scanner sc = new Scanner(System.in); - n = sc.nextInt(); - m = sc.nextInt(); - - in_degree = new int[n + 1]; - - for (int node = 1; node <= n; node++) { - adj[node] = new ArrayList<>(); - } - - for (int i = 1, x, y, p; i <= m; i++) { - // arc (x, y) - x = sc.nextInt(); - y = sc.nextInt(); - p = sc.nextInt(); - - adj[x].add(new Pair(y, p)); - in_degree[y]++; - } - } - - private void writeOutput(ArrayList, Integer>> allComponents) { - System.out.println(allComponents.size()); - for (Pair, Integer> component : allComponents) { - ArrayList nodes = component.first; - int cost = component.second; - if (nodes.size() != 1) { - System.out.println(nodes.get(0) + " " + nodes.get(nodes.size() - 1) + " " + cost); - } else { - System.out.println(nodes.get(0) + " " + nodes.get(0) + " " + cost); - } - } - } - - private ArrayList, Integer>> getResult() { - return solveDfs(); - } - - // Complexitate: O(n + m + n * log n): parcurgerea DFS - O(n + m), sortare - O(n log n) - // Observatie: Parcurgerea poate fi inlocuita si cu BFS. - private ArrayList, Integer>> solveDfs() { - // vectorul rezultat, contine lanturile si costul minim pentru ele - ArrayList, Integer>> all_components = new ArrayList<>(); - - // visited[node] = 1 daca node a fost deja vizitat, 0 altfel - boolean[] visited = new boolean[n + 1]; - - // pentru fiecare nod - for (int node = 1; node <= n; node++) { - // Incepem un lant nou doar daca nodul - // nu e vizitat si are gradul intern 0. - if (!visited[node] && in_degree[node] == 0) { - - // In Java nu avem transmitere prin referinta pentru int; - // il vom pasa intr-un arrray cu un element. - ArrayList current_component = new ArrayList<>(); - int[] minCost = {Integer.MAX_VALUE}; - dfs(node, visited, current_component, minCost); - - // O componenta cu un singur nod are costul minim 0 - if (current_component.size() == 1) { - minCost[0] = 0; - } - all_components.add(new Pair<>(current_component, minCost[0])); - } - } - - // Sortare crescatoare dupa start - all_components.sort((a, b) -> Integer.compare(a.first.get(0), b.first.get(0))); - - return all_components; - } - - // porneste o parcurgere DFS din node - // foloseste vectorul visited pentru a marca nodurile vizitate - void dfs(int node, boolean[] visited, ArrayList current_component, int[] min_cost) { - visited[node] = true; - current_component.add(node); - - // parcurg vecinii - for (Pair neigh : adj[node]) { - if (!visited[neigh.first]) { - min_cost[0] = Math.min(min_cost[0], neigh.second); - dfs(neigh.first, visited, current_component, min_cost); - } - } - } - } - - // [ATENTIE] NU modifica functia main! - public static void main(String[] args) { - new Task().solve(); - } -} diff --git a/algorithms/lab06/java/task-4/src/sol1_bfs.java b/algorithms/lab06/java/task-4/src/sol1_bfs.java deleted file mode 100644 index 2907544..0000000 --- a/algorithms/lab06/java/task-4/src/sol1_bfs.java +++ /dev/null @@ -1,136 +0,0 @@ -// SPDX-License-Identifier: BSD-3-Clause - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.Queue; -import java.util.Scanner; - -public class sol1_bfs { - static class Task { - public static final String INPUT_FILE = "berarii2.in"; - public static final String OUTPUT_FILE = "berari2.out"; - - // numarul maxim de noduri - public static final int NMAX = (int)1e5 + 5; // 10^5 + 5 = 1.000.005 - - // n = numar de noduri, m = numar de muchii/arce - int n, m; - - // p = numarul de taverne - int p; - - // adj_trans[node] = lista de adiacenta a nodului node in graful transpus - // exemplu: daca adj_trans[node] = {..., neigh, ...} => exista arcul (node, neigh) in graful transpus - @SuppressWarnings("unchecked") - ArrayList[] adj_trans = new ArrayList[NMAX]; - - // taverns = lista de berarii - ArrayList taverns = new ArrayList<>(); - - public void solve() { - readInput(); - writeOutput(getResult()); - } - - private void readInput() { - try { - Scanner sc = new Scanner(new BufferedReader(new FileReader(INPUT_FILE))); - n = sc.nextInt(); - m = sc.nextInt(); - p = sc.nextInt(); - - for (int i = 0; i <= n; i++) { - adj_trans[i] = new ArrayList<>(); - } - - // Stocam graful transpus, vrem sa vedem intersectiile - // unde nu putem ajunge pornind din berarii. - for (int i = 1; i <= m; i++) { - int x = sc.nextInt(); - int y = sc.nextInt(); - adj_trans[y].add(x); - } - - for (int i = 0; i < p; i++) { - taverns.add(sc.nextInt()); - } - - sc.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - ArrayList getResult() { - return bfs(taverns); - } - - // Complexitate: O(n + m) - ArrayList bfs(ArrayList sources) { - // visited[node] = retine daca nodul poate fi vizitat pornind - // dintr-o berarie - boolean[] visited = new boolean[n + 1]; - - // vector care retine nodurile care nu pot fi atinse pornind dintr-o taverna - ArrayList not_reachable = new ArrayList<>(); - - // Step 0: declaram o coada in care putem baga noduri - Queue q = new LinkedList<>(); - - // Step 1: pasul initial: pun in coada TOATE nodurile din berarii - for (int tavern : taverns) { - if (!visited[tavern]) { - visited[tavern] = true; - q.add(tavern); - } - } - - // Step 2: cat timp NU am parcurs toate nodurile - while (!q.isEmpty()) { - // Step 2.1: extragem si procesam urmatorul nod din coada - int node = q.poll(); - - // Step 2.2: parcurgem vecinii lui node pe graful transpus - for (int neighbor : adj_trans[node]) { - if (!visited[neighbor]) { - visited[neighbor] = true; - q.add(neighbor); - } - } - } - - // Step 3: Stochez nodurile la care nu am putut ajunge - for (int i = 1; i <= n; i++) { - if (!visited[i]) { - not_reachable.add(i); - } - } - - return not_reachable; - } - - private void writeOutput(ArrayList not_reachable) { - try { - PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(OUTPUT_FILE))); - pw.println(not_reachable.size()); - for (int node : not_reachable) { - pw.println(node); - } - pw.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - } - - // [ATENTIE] NU modifica functia main! - public static void main(String[] args) { - new Task().solve(); - } -} diff --git a/algorithms/lab06/python/01-bfs/01-bfs.py b/algorithms/lab06/python/01-bfs/01-bfs.py new file mode 100644 index 0000000..2e7da5b --- /dev/null +++ b/algorithms/lab06/python/01-bfs/01-bfs.py @@ -0,0 +1,95 @@ +# SPDX-License-Identifier: BSD-3-Clause + +import sys +from collections import deque + +class Task: + def __init__(self) -> None: + # n = numar de noduri, m = numar de muchii/arce + self.n = 0 + self.m = 0 + + # adj[node] = lista de adiacenta a nodului node + # exemplu: daca adj[node] = [..., neigh, ...] => exista muchia (node, neigh) + self.adj = [] + + # nodul sursa in parcurgerea BFS + self.source = 0 + + # distanta maxima in graf + self.INF = int(1e9) # 10^9 = 1.000.000.000 + + def solve(self) -> None: + self.read_input() + self.write_output(self.get_result()) + + def read_input(self) -> None: + with open("in", "r") as fin: + tokens = fin.read().split() + if not tokens: + return + + self.n = int(tokens[0]) + self.m = int(tokens[1]) + self.source = int(tokens[2]) + + self.adj = [[] for _ in range(self.n + 1)] + + idx = 3 + for _ in range(self.m): + x = int(tokens[idx]) + y = int(tokens[idx+1]) + idx += 2 + self.adj[x].append(y) + self.adj[y].append(x) + + def get_result(self) -> list[int]: + return self.bfs(self.source) + + # Complexitate: O(n + m) + def bfs(self, source: int) -> list[int]: + # Step 0: alocare vector de distante + # d[node] = INF, oricare ar fi node + d = [self.INF] * (self.n + 1) + + # Step 1: declaram o coada in care putem baga noduri + q = deque() + + # Step 2: pasul initial: pun in coada TOATE nodurile cu grad intern 0 + q.append(source) + d[source] = 0 + + # Step 3: cat timp NU am parcurs toate nodurile + while q: + # Step 3.1: extragem si procesam urmatorul nod din coada + node = q.popleft() + + # Step 3.2: parcurgem vecinii lui node + for neigh in self.adj[node]: + # actulizam distanta lui x fata de sursa daca + # am gasit o solutie mai buna + if d[node] + 1 < d[neigh]: + # adauga nodul in coada si actualizeaza distanta pana la el + d[neigh] = d[node] + 1 + q.append(neigh) + + # Step 4: problema ne cere ca acolo unde nu exista drum sa punem -1 + # inlocuim valorile egale cu INF din d cu -1 + for i in range(1, self.n + 1): + if d[i] == self.INF: + d[i] = -1 + + return d + + def write_output(self, d: list[int]) -> None: + with open("out", "w") as fout: + out_str = " ".join(map(str, d[1:self.n+1])) + fout.write(out_str + "\n") + +def main() -> None: + task = Task() + task.solve() + +# [ATENTIE] NU modifica functia main! +if __name__ == "__main__": + main() diff --git a/algorithms/lab06/python/02-dfs/02-dfs.py b/algorithms/lab06/python/02-dfs/02-dfs.py new file mode 100644 index 0000000..cfe938b --- /dev/null +++ b/algorithms/lab06/python/02-dfs/02-dfs.py @@ -0,0 +1,79 @@ +# SPDX-License-Identifier: BSD-3-Clause + +import sys + +sys.setrecursionlimit(10**6) + +class Task: + def __init__(self) -> None: + # n = numar de noduri, m = numar de muchii/arce + self.n = 0 + self.m = 0 + + # adj[node] = lista de adiacenta a nodului node + # exemplu: daca adj[node] = [..., neigh, ...] => exista muchia (node, neigh) + self.adj = [] + + def solve(self) -> None: + self.read_input() + self.write_output(self.get_result()) + + def read_input(self) -> None: + with open("in", "r") as fin: + tokens = fin.read().split() + if not tokens: + return + + self.n = int(tokens[0]) + self.m = int(tokens[1]) + + self.adj = [[] for _ in range(self.n + 1)] + + idx = 2 + for _ in range(self.m): + x = int(tokens[idx]) + y = int(tokens[idx+1]) + self.adj[x].append(y) + self.adj[y].append(x) + idx += 2 + + def get_result(self) -> int: + return self.solve_dfs() + + # Complexitate: O(n + m) + def solve_dfs(self) -> int: + connected_components = 0 + + # visited[node] = 1 daca node a fost deja vizitat, 0 altfel + visited = [0] * (self.n + 1) + + # pentru fiecare nod + for node in range(1, self.n + 1): + # daca nodul este nevizitat, pornim o parcurgere + if visited[node] == 0: + connected_components += 1 + self.dfs(node, visited) + + return connected_components + + # porneste o parcurgere DFS din node + # foloseste vectorul visited pentru a marca nodurile vizitate + def dfs(self, node: int, visited: list[int]) -> None: + visited[node] = 1 # marchez nodul ca fiind vizitat + + # parcurg vecinii + for neigh in self.adj[node]: + if visited[neigh] == 0: + self.dfs(neigh, visited) + + def write_output(self, result: int) -> None: + with open("out", "w") as fout: + fout.write(f"{result}\n") + +def main() -> None: + task = Task() + task.solve() + +# [ATENTIE] NU modifica functia main! +if __name__ == "__main__": + main() diff --git a/algorithms/lab06/python/03-topsort/03-topsort_bfs.py b/algorithms/lab06/python/03-topsort/03-topsort_bfs.py new file mode 100644 index 0000000..5305947 --- /dev/null +++ b/algorithms/lab06/python/03-topsort/03-topsort_bfs.py @@ -0,0 +1,102 @@ +# SPDX-License-Identifier: BSD-3-Clause + +import sys +from collections import deque + +class Task: + def __init__(self) -> None: + # n = numar de noduri, m = numar de muchii/arce + self.n = 0 + self.m = 0 + + # adj[node] = lista de adiacenta a nodului node + # exemplu: daca adj[node] = [..., neigh, ...] => exista arcul (node, neigh) + self.adj = [] + + # in_degree[node] = gradul intern al nodului node + self.in_degree = [] + + def solve(self) -> None: + self.read_input() + self.write_output(self.get_result()) + + def read_input(self) -> None: + with open("in", "r") as fin: + tokens = fin.read().split() + if not tokens: + return + + self.n = int(tokens[0]) + self.m = int(tokens[1]) + + self.adj = [[] for _ in range(self.n + 1)] + # grad intern 0 pentru toate nodurile... momentan + self.in_degree = [0] * (self.n + 1) + + idx = 2 + for _ in range(self.m): + x = int(tokens[idx]) + y = int(tokens[idx+1]) + self.adj[x].append(y) # arc (x, y) + self.in_degree[y] += 1 # numar inca o muchie care intra in y + idx += 2 + + def get_result(self) -> list[int]: + return self.solve_bfs() + + # Complexitate: O(n + m) + def solve_bfs(self) -> list[int]: + # Step 0: initializare topsort - permutare vida initial + topsort = [] + + # Step 1: declaram o coada in care putem baga noduri + q = deque() + + # Step 2: pasul initial: pun in coada TOATE nodurile cu grad intern 0 + for node in range(1, self.n + 1): + if self.in_degree[node] == 0: + q.append(node) + + # in_degree il modificam, deci facem o copie + in_degree = list(self.in_degree) + + # Step 3: parcurg in latime graful + while q: + # 3.1: SCOT primul nod din coada + # adaug la solutie elementul scos + node = q.popleft() + topsort.append(node) + + # 3.2 Ii parcurg toti vecinii + for neigh in self.adj[node]: + # sterg muchia node->neigh + # obs1. NU e nevoie sa o sterg la propriu + # Daca nu am cicluri, nu se va ajunge aici + # obs2. Simulez stergerea prin scaderea gradului intern a lui neigh + in_degree[neigh] -= 1 + + # daca neigh a ajuns nod cu grad intern 0, atunci este adaugat in coada + if in_degree[neigh] == 0: + q.append(neigh) + + # Step 4: verifica ca topsort chiar reprezinta o sortare topologica valida + # Ce inseamna asta? S-au sters toate muchiile din graf. + # Daca nu s-a sters tot, atunci graful este ciclic! + is_valid = all(d == 0 for d in in_degree[1:self.n+1]) + if is_valid: + return topsort # sortarea topologica obtinuta + else: + return [] # vector gol == nu se poate face o sortare topologica + + def write_output(self, topsort: list[int]) -> None: + with open("out", "w") as fout: + out_str = " ".join(map(str, topsort)) + fout.write(out_str + "\n") + +def main() -> None: + task = Task() + task.solve() + +# [ATENTIE] NU modifica functia main! +if __name__ == "__main__": + main() diff --git a/algorithms/lab06/python/03-topsort/03-topsort_dfs.py b/algorithms/lab06/python/03-topsort/03-topsort_dfs.py new file mode 100644 index 0000000..3b54e50 --- /dev/null +++ b/algorithms/lab06/python/03-topsort/03-topsort_dfs.py @@ -0,0 +1,86 @@ +# SPDX-License-Identifier: BSD-3-Clause + +import sys + +sys.setrecursionlimit(10**6) + +class Task: + def __init__(self) -> None: + # n = numar de noduri, m = numar de muchii/arce + self.n = 0 + self.m = 0 + + # adj[node] = lista de adiacenta a nodului node + # exemplu: daca adj[node] = [..., neigh, ...] => exista arcul (node, neigh) + self.adj = [] + + def solve(self) -> None: + self.read_input() + self.write_output(self.get_result()) + + def read_input(self) -> None: + with open("in", "r") as fin: + tokens = fin.read().split() + if not tokens: + return + + self.n = int(tokens[0]) + self.m = int(tokens[1]) + + self.adj = [[] for _ in range(self.n + 1)] + + idx = 2 + for _ in range(self.m): + x = int(tokens[idx]) + y = int(tokens[idx+1]) + self.adj[x].append(y) + idx += 2 + + def get_result(self) -> list[int]: + return self.solve_dfs() + + # Complexitate: O(n + m) + def solve_dfs(self) -> list[int]: + # vectorul rezultat (in final contine o permutare pentru 1, 2, ..., n) + topsort = [] + + # visited[node] = 1 daca node a fost deja vizitat, 0 altfel + visited = [0] * (self.n + 1) + + # pentru fiecare nod + for node in range(1, self.n + 1): + # daca nodul este nevizitat, pornim o parcurgere + if visited[node] == 0: + self.dfs(node, visited, topsort) + + # rezultatul a fost obtinut in ordine inversa + topsort.reverse() + + return topsort + + # porneste o parcurgere DFS din node + # foloseste vectorul visited pentru a marca nodurile vizitate + def dfs(self, node: int, visited: list[int], topsort: list[int]) -> None: + visited[node] = 1 # marchez nodul ca fiind vizitat + + # parcurg vecinii + for neigh in self.adj[node]: + if visited[neigh] == 0: + self.dfs(neigh, visited, topsort) + + # dupa ce am vizitat recursiv toti vecinii, adaugam + # nodul la sortare + topsort.append(node) + + def write_output(self, topsort: list[int]) -> None: + with open("out", "w") as fout: + out_str = " ".join(map(str, topsort)) + fout.write(out_str + "\n") + +def main() -> None: + task = Task() + task.solve() + +# [ATENTIE] NU modifica functia main! +if __name__ == "__main__": + main() diff --git a/algorithms/lab06/rust/01-bfs/01-bfs.rs b/algorithms/lab06/rust/01-bfs/01-bfs.rs new file mode 100644 index 0000000..8803e33 --- /dev/null +++ b/algorithms/lab06/rust/01-bfs/01-bfs.rs @@ -0,0 +1,113 @@ +// SPDX-License-Identifier: BSD-3-Clause + +use std::collections::VecDeque; +use std::fs::File; +use std::io::{BufRead, BufReader, Write}; + +#[derive(Default)] +struct Task { + // n = numar de noduri, m = numar de muchii/arce + n: i32, + m: i32, + + // adj[node] = lista de adiacenta a nodului node + // exemplu: daca adj[node] = {..., neigh, ...} => exista muchia (node, neigh) + adj: Vec>, + + // nodul sursa in parcurgerea BFS + source: i32, +} + +impl Task { + // numarul maxim de noduri + const NMAX: usize = 100_005; // 10^5 + 5 + + // distanta maxima in graf + const INF: i32 = 1_000_000_000; // 10^9 + + pub fn solve(&mut self) { + self.read_input(); + self.write_output(&self.get_result()); + } + + fn read_input(&mut self) { + let fin = File::open("in").expect("in"); + let mut lines = BufReader::new(fin).lines().map(|l| l.unwrap()); + let first = lines.next().unwrap(); + let mut tokens = first.split_whitespace().map(|s| s.parse::().unwrap()); + self.n = tokens.next().unwrap(); + self.m = tokens.next().unwrap(); + self.source = tokens.next().unwrap(); + self.adj = vec![vec![]; Self::NMAX]; + for _ in 0..self.m { + let line = lines.next().unwrap(); + let mut tok = line.split_whitespace().map(|s| s.parse::().unwrap()); + let x = tok.next().unwrap(); + let y = tok.next().unwrap(); + // muchie (x, y) + self.adj[x as usize].push(y); + self.adj[y as usize].push(x); + } + } + + fn get_result(&self) -> Vec { + return self.bfs(self.source); + } + + // Complexitate: O(n + m) + fn bfs(&self, source: i32) -> Vec { + // Step 0: alocare vector de distante + // d[node] = INF, oricare ar fi node + let mut d = vec![Self::INF; (self.n + 1) as usize]; + + // Step 1: declaram o coada in care putem baga noduri + let mut q = VecDeque::new(); + + // Step 2: pasul initial: pun in coada TOATE nodurile cu grad intern 0 + q.push_back(source); + d[source as usize] = 0; + + // Step 3: cat timp NU am parcurs toate nodurile + while let Some(node) = q.pop_front() { + // Step 3.1: extragem si procesam urmatorul nod din coada + // Step 3.2: parcurgem vecinii lui node + for &neigh in &self.adj[node as usize] { + // actualizam distanta lui neigh fata de sursa daca + // am gasit o solutie mai buna + if d[node as usize] + 1 < d[neigh as usize] { + // adauga nodul in coada si actualizeaza distanta pana la el + d[neigh as usize] = d[node as usize] + 1; + q.push_back(neigh); + } + } + } + + // Step 4: problema ne cere ca acolo unde nu exista drum sa punem -1 + // inlocuim valorile egale cu INF din d cu -1 + for value in &mut d { + if *value == Self::INF { + *value = -1; + } + } + + return d; + } + + fn write_output(&self, d: &[i32]) { + let mut fout = File::create("out").expect("out"); + for node in 1..=self.n { + let idx = node as usize; + if node == self.n { + writeln!(fout, "{}", d[idx]).unwrap(); + } else { + write!(fout, "{} ", d[idx]).unwrap(); + } + } + } +} + +// [ATENTIE] NU modifica functia main! +fn main() { + let mut task = Box::new(Task::default()); + task.solve(); +} diff --git a/algorithms/lab06/rust/02-dfs/02-dfs.rs b/algorithms/lab06/rust/02-dfs/02-dfs.rs new file mode 100644 index 0000000..dc1d110 --- /dev/null +++ b/algorithms/lab06/rust/02-dfs/02-dfs.rs @@ -0,0 +1,91 @@ +// SPDX-License-Identifier: BSD-3-Clause + +use std::fs::File; +use std::io::{BufRead, BufReader, Write}; + +#[derive(Default)] +struct Task { + // n = numar de noduri, m = numar de muchii/arce + n: i32, + m: i32, + + // adj[node] = lista de adiacenta a nodului node + // exemplu: daca adj[node] = {..., neigh, ...} => exista muchia (node, neigh) + adj: Vec>, +} + +impl Task { + // numarul maxim de noduri + const NMAX: usize = 100_005; // 10^5 + 5 + + pub fn solve(&mut self) { + self.read_input(); + self.write_output(self.get_result()); + } + + fn read_input(&mut self) { + let fin = File::open("in").expect("in"); + let mut lines = BufReader::new(fin).lines().map(|l| l.unwrap()); + let first = lines.next().unwrap(); + let mut tokens = first.split_whitespace().map(|s| s.parse::().unwrap()); + self.n = tokens.next().unwrap(); + self.m = tokens.next().unwrap(); + self.adj = vec![vec![]; Self::NMAX]; + for _ in 0..self.m { + let line = lines.next().unwrap(); + let mut tok = line.split_whitespace().map(|s| s.parse::().unwrap()); + let x = tok.next().unwrap(); + let y = tok.next().unwrap(); + // muchie (x, y) + self.adj[x as usize].push(y); + self.adj[y as usize].push(x); + } + } + + fn get_result(&self) -> i32 { + return self.solve_dfs(); + } + + // Complexitate: O(n + m) + fn solve_dfs(&self) -> i32 { + let mut connected_components = 0; + + // visited[node] = 1 daca node a fost deja vizitat, 0 altfel + let mut visited = vec![0; (self.n + 1) as usize]; + + // pentru fiecare nod + for node in 1..=self.n { + // daca nodul este nevizitat, pornim o parcurgere + if visited[node as usize] == 0 { + connected_components += 1; + self.dfs(node, &mut visited); + } + } + + return connected_components; + } + + // porneste o parcurgere DFS din node + // foloseste vectorul visited pentru a marca nodurile vizitate + fn dfs(&self, node: i32, visited: &mut [i32]) { + visited[node as usize] = 1; // marchez nodul ca fiind vizitat + + // parcurg vecinii + for &neigh in &self.adj[node as usize] { + if visited[neigh as usize] == 0 { + self.dfs(neigh, visited); + } + } + } + + fn write_output(&self, result: i32) { + let mut fout = File::create("out").expect("out"); + writeln!(fout, "{}", result).unwrap(); + } +} + +// [ATENTIE] NU modifica functia main! +fn main() { + let mut task = Box::new(Task::default()); + task.solve(); +} diff --git a/algorithms/lab06/rust/03-topsort/03-topsort_bfs.rs b/algorithms/lab06/rust/03-topsort/03-topsort_bfs.rs new file mode 100644 index 0000000..8f77066 --- /dev/null +++ b/algorithms/lab06/rust/03-topsort/03-topsort_bfs.rs @@ -0,0 +1,119 @@ +// SPDX-License-Identifier: BSD-3-Clause + +use std::collections::VecDeque; +use std::fs::File; +use std::io::{BufRead, BufReader, Write}; + +#[derive(Default)] +struct Task { + // n = numar de noduri, m = numar de muchii/arce + n: i32, + m: i32, + + // adj[node] = lista de adiacenta a nodului node + // exemplu: daca adj[node] = {..., neigh, ...} => exista arcul (node, neigh) + adj: Vec>, + + // in_degree[node] = gradul intern al nodului node + in_degree: Vec, +} + +impl Task { + // numarul maxim de noduri + const NMAX: usize = 100_005; // 10^5 + 5 + + pub fn solve(&mut self) { + self.read_input(); + self.write_output(&self.get_result()); + } + + fn read_input(&mut self) { + let fin = File::open("in").expect("in"); + let mut lines = BufReader::new(fin).lines().map(|l| l.unwrap()); + let first = lines.next().unwrap(); + let mut tokens = first.split_whitespace().map(|s| s.parse::().unwrap()); + self.n = tokens.next().unwrap(); + self.m = tokens.next().unwrap(); + + self.adj = vec![vec![]; Self::NMAX]; + // grad intern 0 pentru toate nodurile... momentan + self.in_degree = vec![0; (self.n + 1) as usize]; + + for _ in 0..self.m { + let line = lines.next().unwrap(); + let mut tok = line.split_whitespace().map(|s| s.parse::().unwrap()); + let x = tok.next().unwrap(); + let y = tok.next().unwrap(); + self.adj[x as usize].push(y); // arc (x, y) + self.in_degree[y as usize] += 1; // numar inca o muchie care intra in y + } + } + + fn get_result(&self) -> Vec { + return self.solve_bfs(); + } + + // Complexitate: O(n + m) + fn solve_bfs(&self) -> Vec { + // Step 0: initializare topsort - permutare vida initial + let mut topsort: Vec = vec![]; + + // Step 1: declaram o coada in care putem baga noduri + let mut q = VecDeque::new(); + + // Step 2: pasul initial: pun in coada TOATE nodurile cu grad intern 0 + for node in 1..=self.n { + if self.in_degree[node as usize] == 0 { + q.push_back(node); + } + } + + // in_degree il modificam, deci trebuie mutabil + let mut in_degree = self.in_degree.clone(); + + // Step 3: parcurg in latime graful + while let Some(node) = q.pop_front() { + // 3.1: SCOT primul nod din coada + // adaug la solutie elementul scos + topsort.push(node); + + // 3.2 Ii parcurg toti vecinii + for &neigh in &self.adj[node as usize] { + // sterg muchia node->neigh + // obs1. NU e nevoie sa o sterg la propriu + // Daca nu am cicluri, nu se va ajunge aici + // obs2. Simulez stergerea prin scaderea gradului intern a lui neigh + in_degree[neigh as usize] -= 1; + + // daca neigh a ajuns nod cu grad intern 0, atunci este adaugat in coada + if in_degree[neigh as usize] == 0 { + q.push_back(neigh); + } + } + } + + // Step 4: verifica ca topsort chiar reprezinta o sortare topologica valida + // Ce inseamna asta? S-au sters toate muchiile din graf. + // Daca nu s-a sters tot, atunci graful este ciclic! + let is_valid = in_degree[1usize..=self.n as usize].iter().all(|&d| d == 0); + if is_valid { + return topsort; // sortarea topologica obtinuta + } else { + return vec![]; // vector gol == nu se poate face o sortare topologica + } + } + + fn write_output(&self, topsort: &[i32]) { + let mut fout = File::create("out").expect("out"); + for node in topsort { + write!(fout, "{} ", node).unwrap(); + } + writeln!(fout).unwrap(); + } +} + +// [ATENTIE] NU modifica functia main! +fn main() { + let mut task = Box::new(Task::default()); + task.solve(); +} diff --git a/algorithms/lab06/rust/03-topsort/03-topsort_dfs.rs b/algorithms/lab06/rust/03-topsort/03-topsort_dfs.rs new file mode 100644 index 0000000..1db49fb --- /dev/null +++ b/algorithms/lab06/rust/03-topsort/03-topsort_dfs.rs @@ -0,0 +1,100 @@ +// SPDX-License-Identifier: BSD-3-Clause + +use std::fs::File; +use std::io::{BufRead, BufReader, Write}; + +#[derive(Default)] +struct Task { + // n = numar de noduri, m = numar de muchii/arce + n: i32, + m: i32, + + // adj[node] = lista de adiacenta a nodului node + // exemplu: daca adj[node] = {..., neigh, ...} => exista arcul (node, neigh) + adj: Vec>, +} + +impl Task { + // numarul maxim de noduri + const NMAX: usize = 100_005; // 10^5 + 5 + + pub fn solve(&mut self) { + self.read_input(); + self.write_output(&self.get_result()); + } + + fn read_input(&mut self) { + let fin = File::open("in").expect("in"); + let mut lines = BufReader::new(fin).lines().map(|l| l.unwrap()); + let first = lines.next().unwrap(); + let mut tokens = first.split_whitespace().map(|s| s.parse::().unwrap()); + self.n = tokens.next().unwrap(); + self.m = tokens.next().unwrap(); + self.adj = vec![vec![]; Self::NMAX]; + for _ in 0..self.m { + let line = lines.next().unwrap(); + let mut tok = line.split_whitespace().map(|s| s.parse::().unwrap()); + let x = tok.next().unwrap(); + let y = tok.next().unwrap(); + // arc (x, y) + self.adj[x as usize].push(y); + } + } + + fn get_result(&self) -> Vec { + return self.solve_dfs(); + } + + // Complexitate: O(n + m) + fn solve_dfs(&self) -> Vec { + // vectorul rezultat (in final contine o permutare pentru 1, 2, ..., n) + let mut topsort: Vec = vec![]; + + // visited[node] = 1 daca node a fost deja vizitat, 0 altfel + let mut visited = vec![0; (self.n + 1) as usize]; + + // pentru fiecare nod + for node in 1..=self.n { + // daca nodul este nevizitat, pornim o parcurgere + if visited[node as usize] == 0 { + self.dfs(node, &mut visited, &mut topsort); + } + } + + // rezultatul a fost obtinut in ordine inversa + topsort.reverse(); + + return topsort; + } + + // porneste o parcurgere DFS din node + // foloseste vectorul visited pentru a marca nodurile vizitate + fn dfs(&self, node: i32, visited: &mut [i32], topsort: &mut Vec) { + visited[node as usize] = 1; // marchez nodul ca fiind vizitat + + // parcurg vecinii + for &neigh in &self.adj[node as usize] { + if visited[neigh as usize] == 0 { + self.dfs(neigh, visited, topsort); + } + } + + // dupa ce am vizitat recursiv toti vecinii, adaugam + // nodul la sortare + topsort.push(node); + } + + fn write_output(&self, topsort: &[i32]) { + let mut fout = File::create("out").expect("out"); + for node in topsort { + write!(fout, "{} ", node).unwrap(); + } + writeln!(fout).unwrap(); + } +} + +// [ATENTIE] NU modifica functia main! +fn main() { + let mut task = Box::new(Task::default()); + task.solve(); +} diff --git a/algorithms/lab06/tests/task-1/1.in b/algorithms/lab06/tests/01-bfs/1.in similarity index 100% rename from algorithms/lab06/tests/task-1/1.in rename to algorithms/lab06/tests/01-bfs/1.in diff --git a/algorithms/lab06/tests/task-1/1.ref b/algorithms/lab06/tests/01-bfs/1.ref similarity index 100% rename from algorithms/lab06/tests/task-1/1.ref rename to algorithms/lab06/tests/01-bfs/1.ref diff --git a/algorithms/lab06/tests/task-1/10.in b/algorithms/lab06/tests/01-bfs/10.in similarity index 100% rename from algorithms/lab06/tests/task-1/10.in rename to algorithms/lab06/tests/01-bfs/10.in diff --git a/algorithms/lab06/tests/task-1/10.ref b/algorithms/lab06/tests/01-bfs/10.ref similarity index 100% rename from algorithms/lab06/tests/task-1/10.ref rename to algorithms/lab06/tests/01-bfs/10.ref diff --git a/algorithms/lab06/tests/task-1/2.in b/algorithms/lab06/tests/01-bfs/2.in similarity index 100% rename from algorithms/lab06/tests/task-1/2.in rename to algorithms/lab06/tests/01-bfs/2.in diff --git a/algorithms/lab06/tests/task-1/2.ref b/algorithms/lab06/tests/01-bfs/2.ref similarity index 100% rename from algorithms/lab06/tests/task-1/2.ref rename to algorithms/lab06/tests/01-bfs/2.ref diff --git a/algorithms/lab06/tests/task-1/3.in b/algorithms/lab06/tests/01-bfs/3.in similarity index 100% rename from algorithms/lab06/tests/task-1/3.in rename to algorithms/lab06/tests/01-bfs/3.in diff --git a/algorithms/lab06/tests/task-1/3.ref b/algorithms/lab06/tests/01-bfs/3.ref similarity index 100% rename from algorithms/lab06/tests/task-1/3.ref rename to algorithms/lab06/tests/01-bfs/3.ref diff --git a/algorithms/lab06/tests/task-1/4.in b/algorithms/lab06/tests/01-bfs/4.in similarity index 100% rename from algorithms/lab06/tests/task-1/4.in rename to algorithms/lab06/tests/01-bfs/4.in diff --git a/algorithms/lab06/tests/task-1/4.ref b/algorithms/lab06/tests/01-bfs/4.ref similarity index 100% rename from algorithms/lab06/tests/task-1/4.ref rename to algorithms/lab06/tests/01-bfs/4.ref diff --git a/algorithms/lab06/tests/task-1/5.in b/algorithms/lab06/tests/01-bfs/5.in similarity index 100% rename from algorithms/lab06/tests/task-1/5.in rename to algorithms/lab06/tests/01-bfs/5.in diff --git a/algorithms/lab06/tests/task-1/5.ref b/algorithms/lab06/tests/01-bfs/5.ref similarity index 100% rename from algorithms/lab06/tests/task-1/5.ref rename to algorithms/lab06/tests/01-bfs/5.ref diff --git a/algorithms/lab06/tests/task-1/6.in b/algorithms/lab06/tests/01-bfs/6.in similarity index 100% rename from algorithms/lab06/tests/task-1/6.in rename to algorithms/lab06/tests/01-bfs/6.in diff --git a/algorithms/lab06/tests/task-1/6.ref b/algorithms/lab06/tests/01-bfs/6.ref similarity index 100% rename from algorithms/lab06/tests/task-1/6.ref rename to algorithms/lab06/tests/01-bfs/6.ref diff --git a/algorithms/lab06/tests/task-1/7.in b/algorithms/lab06/tests/01-bfs/7.in similarity index 100% rename from algorithms/lab06/tests/task-1/7.in rename to algorithms/lab06/tests/01-bfs/7.in diff --git a/algorithms/lab06/tests/task-1/7.ref b/algorithms/lab06/tests/01-bfs/7.ref similarity index 100% rename from algorithms/lab06/tests/task-1/7.ref rename to algorithms/lab06/tests/01-bfs/7.ref diff --git a/algorithms/lab06/tests/task-1/8.in b/algorithms/lab06/tests/01-bfs/8.in similarity index 100% rename from algorithms/lab06/tests/task-1/8.in rename to algorithms/lab06/tests/01-bfs/8.in diff --git a/algorithms/lab06/tests/task-1/8.ref b/algorithms/lab06/tests/01-bfs/8.ref similarity index 100% rename from algorithms/lab06/tests/task-1/8.ref rename to algorithms/lab06/tests/01-bfs/8.ref diff --git a/algorithms/lab06/tests/task-1/9.in b/algorithms/lab06/tests/01-bfs/9.in similarity index 100% rename from algorithms/lab06/tests/task-1/9.in rename to algorithms/lab06/tests/01-bfs/9.in diff --git a/algorithms/lab06/tests/task-1/9.ref b/algorithms/lab06/tests/01-bfs/9.ref similarity index 100% rename from algorithms/lab06/tests/task-1/9.ref rename to algorithms/lab06/tests/01-bfs/9.ref diff --git a/algorithms/lab06/tests/01-bfs/check_task b/algorithms/lab06/tests/01-bfs/check_task new file mode 100755 index 0000000..cb49b8e --- /dev/null +++ b/algorithms/lab06/tests/01-bfs/check_task @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: BSD-3-Clause + +diff -q --ignore-all-space "$2" "$3" &>/dev/null diff --git a/algorithms/lab06/tests/task-1/custom.in b/algorithms/lab06/tests/01-bfs/custom.in similarity index 100% rename from algorithms/lab06/tests/task-1/custom.in rename to algorithms/lab06/tests/01-bfs/custom.in diff --git a/algorithms/lab06/tests/task-1/custom.ref b/algorithms/lab06/tests/01-bfs/custom.ref similarity index 100% rename from algorithms/lab06/tests/task-1/custom.ref rename to algorithms/lab06/tests/01-bfs/custom.ref diff --git a/algorithms/lab06/tests/02-dfs/1.in b/algorithms/lab06/tests/02-dfs/1.in new file mode 100644 index 0000000..93514ad --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/1.in @@ -0,0 +1,26 @@ +50 25 +4 50 +17 44 +33 29 +21 45 +19 45 +30 29 +18 38 +47 7 +50 32 +46 35 +18 30 +6 5 +35 6 +20 44 +40 24 +10 42 +4 37 +47 34 +29 34 +42 24 +36 20 +31 2 +42 40 +35 1 +25 6 diff --git a/algorithms/lab06/tests/02-dfs/1.ref b/algorithms/lab06/tests/02-dfs/1.ref new file mode 100644 index 0000000..6f4247a --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/1.ref @@ -0,0 +1 @@ +26 diff --git a/algorithms/lab06/tests/02-dfs/10.in b/algorithms/lab06/tests/02-dfs/10.in new file mode 100644 index 0000000..2ef096f --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/10.in @@ -0,0 +1,2701 @@ +1000 2700 +339 967 +790 543 +113 261 +782 68 +927 991 +943 741 +700 862 +146 83 +13 950 +93 631 +882 81 +894 612 +747 318 +480 553 +587 232 +370 171 +4 572 +773 441 +524 817 +50 138 +144 121 +589 806 +276 640 +48 977 +368 857 +291 63 +145 456 +475 333 +520 96 +484 861 +467 613 +850 876 +217 892 +854 342 +245 415 +189 998 +339 63 +80 852 +313 494 +705 1000 +354 108 +622 658 +518 590 +115 294 +838 319 +440 209 +134 758 +17 867 +352 656 +274 505 +758 481 +634 683 +502 472 +717 595 +412 761 +905 521 +650 531 +94 511 +228 986 +940 904 +305 372 +512 936 +512 443 +927 575 +386 784 +599 9 +924 527 +191 238 +648 49 +645 986 +884 135 +70 31 +12 408 +568 565 +160 639 +227 905 +873 687 +244 748 +566 75 +900 704 +653 41 +454 311 +173 155 +562 104 +667 690 +957 822 +545 667 +846 771 +607 129 +162 526 +969 820 +159 371 +102 212 +921 385 +173 409 +366 85 +823 590 +725 36 +857 918 +668 994 +788 338 +387 926 +134 85 +503 842 +878 542 +799 3 +490 358 +545 243 +427 150 +612 223 +457 86 +446 356 +913 699 +357 49 +360 717 +60 12 +120 456 +879 288 +688 741 +950 678 +677 218 +919 577 +68 700 +415 943 +568 160 +187 344 +575 430 +625 692 +343 566 +294 171 +247 341 +188 481 +320 18 +223 344 +159 132 +571 993 +935 40 +760 789 +760 980 +488 12 +915 745 +572 321 +339 323 +401 662 +821 966 +67 76 +534 730 +721 115 +715 200 +950 487 +483 584 +126 621 +663 146 +618 560 +125 676 +324 809 +198 863 +423 108 +799 857 +317 49 +189 129 +473 787 +540 649 +427 433 +913 748 +907 286 +360 369 +798 412 +543 392 +54 838 +178 162 +905 13 +706 728 +784 627 +519 686 +666 561 +641 73 +363 850 +759 73 +33 285 +668 134 +739 749 +207 110 +192 77 +6 423 +949 945 +107 693 +433 853 +120 70 +900 493 +31 670 +103 913 +444 800 +856 423 +668 330 +897 801 +338 81 +86 902 +624 317 +77 133 +954 129 +183 965 +468 141 +743 681 +476 403 +73 561 +59 971 +776 890 +6 624 +124 459 +456 843 +591 970 +362 97 +447 94 +507 388 +853 163 +39 189 +168 359 +141 327 +564 857 +149 431 +933 324 +560 689 +396 141 +818 260 +872 458 +79 974 +532 850 +526 942 +312 966 +411 337 +344 84 +56 472 +693 350 +839 103 +53 344 +67 232 +837 241 +3 284 +370 589 +976 323 +333 96 +949 179 +618 774 +750 361 +910 327 +658 332 +860 357 +141 426 +695 802 +928 528 +322 909 +355 224 +999 943 +568 894 +589 20 +659 31 +324 692 +179 801 +111 205 +776 620 +378 687 +19 157 +19 35 +836 955 +555 280 +809 753 +316 912 +423 783 +161 822 +147 953 +250 26 +182 505 +135 588 +927 121 +972 409 +212 766 +592 201 +37 750 +188 773 +440 274 +322 110 +66 872 +206 523 +26 95 +268 117 +609 104 +35 469 +944 531 +907 34 +1 459 +574 190 +755 570 +159 49 +174 931 +836 441 +652 798 +638 466 +55 278 +318 714 +854 252 +177 360 +65 348 +788 610 +418 936 +43 451 +981 339 +670 954 +232 316 +801 315 +927 344 +649 626 +580 981 +936 547 +50 306 +615 54 +83 799 +689 985 +604 568 +982 980 +224 543 +948 961 +891 376 +428 434 +498 79 +979 522 +971 116 +153 600 +288 799 +180 928 +96 648 +538 920 +831 797 +447 602 +22 267 +518 178 +584 687 +143 449 +532 134 +246 647 +398 856 +2 896 +229 663 +625 294 +100 686 +593 211 +951 408 +842 548 +493 507 +369 783 +367 837 +722 673 +273 222 +882 175 +885 467 +351 464 +941 280 +651 357 +602 609 +970 176 +363 386 +991 110 +348 785 +761 392 +402 293 +157 70 +389 344 +80 201 +942 990 +948 101 +905 914 +456 566 +191 386 +27 801 +962 408 +457 257 +235 370 +183 366 +262 860 +697 563 +439 709 +51 912 +556 421 +506 837 +376 86 +505 155 +61 158 +645 965 +644 786 +29 231 +898 398 +379 937 +809 150 +305 830 +855 658 +204 769 +568 361 +340 985 +104 113 +541 987 +183 654 +864 703 +792 979 +422 952 +994 279 +82 202 +768 595 +592 629 +524 703 +493 378 +320 503 +3 672 +152 314 +111 876 +987 612 +891 861 +42 349 +514 808 +723 568 +721 938 +216 252 +400 449 +848 372 +909 342 +836 784 +466 2 +33 927 +446 119 +108 677 +185 665 +599 207 +742 3 +307 970 +143 974 +512 1 +102 146 +758 10 +998 283 +658 192 +307 626 +137 402 +680 452 +617 21 +101 702 +759 810 +497 811 +847 390 +858 765 +85 473 +237 670 +478 183 +87 805 +284 443 +147 368 +751 995 +657 420 +902 83 +443 708 +401 618 +173 877 +500 596 +985 267 +77 425 +483 559 +213 482 +869 272 +494 489 +356 330 +867 423 +712 477 +541 9 +784 887 +413 608 +532 275 +223 785 +551 167 +284 901 +848 955 +154 841 +496 671 +486 404 +843 384 +96 123 +216 826 +188 76 +287 87 +66 418 +882 840 +629 7 +577 803 +637 331 +230 638 +521 318 +137 437 +646 196 +670 389 +430 689 +820 787 +323 908 +670 376 +537 48 +324 112 +960 692 +833 367 +523 565 +470 787 +637 683 +424 687 +912 544 +640 974 +629 942 +998 602 +588 455 +659 225 +191 79 +615 958 +287 441 +740 226 +153 106 +211 158 +742 617 +103 426 +256 624 +37 44 +704 206 +730 800 +833 730 +836 800 +648 130 +610 348 +692 763 +373 995 +621 200 +772 480 +764 845 +162 177 +6 418 +488 620 +716 557 +281 510 +344 183 +515 843 +290 43 +973 211 +106 722 +118 567 +531 701 +429 929 +925 727 +723 95 +943 684 +581 778 +655 73 +364 702 +942 567 +911 954 +565 664 +160 207 +213 984 +355 466 +868 632 +753 938 +656 257 +957 792 +866 410 +888 112 +761 640 +54 328 +833 409 +269 239 +901 619 +991 255 +236 565 +418 226 +588 333 +353 992 +386 49 +547 480 +990 945 +494 429 +724 691 +420 896 +527 672 +944 525 +93 500 +65 970 +738 245 +65 745 +311 51 +514 875 +53 698 +763 20 +723 471 +862 384 +435 898 +804 480 +860 259 +670 770 +326 358 +686 402 +539 680 +340 807 +318 447 +52 705 +879 73 +462 832 +546 630 +751 594 +609 325 +379 74 +340 400 +219 455 +561 791 +317 86 +631 164 +232 798 +678 530 +545 623 +267 996 +817 280 +48 301 +396 799 +456 565 +700 874 +533 348 +719 145 +559 355 +84 136 +878 12 +628 45 +476 440 +341 145 +831 211 +121 261 +668 459 +863 946 +867 988 +654 856 +880 973 +152 38 +652 67 +412 890 +926 818 +113 432 +998 580 +598 872 +819 420 +342 158 +664 18 +307 1000 +105 109 +851 990 +190 41 +422 991 +158 325 +490 863 +936 664 +670 42 +247 461 +445 999 +716 250 +21 433 +119 487 +257 407 +246 617 +133 25 +80 495 +660 230 +489 956 +99 743 +346 388 +318 454 +965 696 +78 566 +782 53 +852 886 +436 980 +483 297 +816 590 +267 270 +936 393 +425 757 +134 452 +10 149 +577 941 +726 769 +264 877 +984 457 +458 384 +229 802 +293 828 +585 147 +648 240 +627 263 +795 619 +184 931 +490 726 +535 307 +256 502 +840 234 +876 993 +281 158 +923 120 +295 121 +420 526 +237 851 +786 591 +5 974 +444 284 +889 774 +449 610 +840 167 +218 981 +609 970 +672 786 +248 251 +416 94 +864 293 +303 280 +186 964 +996 846 +276 512 +446 553 +891 557 +263 88 +233 763 +620 697 +365 564 +835 96 +112 734 +57 326 +433 886 +575 746 +306 871 +369 725 +637 166 +939 915 +51 705 +440 21 +450 222 +155 412 +95 343 +917 897 +113 777 +397 208 +988 293 +863 504 +348 569 +282 701 +762 145 +586 175 +319 118 +345 756 +60 631 +704 511 +54 569 +308 269 +823 793 +870 108 +811 319 +514 235 +757 38 +452 381 +309 596 +660 229 +652 750 +400 711 +801 344 +394 176 +325 344 +621 832 +496 57 +666 924 +964 890 +309 649 +395 926 +728 139 +742 805 +491 370 +793 272 +855 591 +716 279 +644 826 +335 698 +137 711 +195 453 +551 270 +466 424 +370 156 +390 316 +453 190 +703 512 +69 549 +523 590 +35 510 +967 86 +415 92 +959 35 +774 635 +606 575 +237 466 +752 205 +98 877 +550 740 +849 739 +772 987 +87 286 +470 748 +300 465 +6 157 +442 515 +630 220 +238 495 +179 751 +108 134 +193 701 +168 478 +929 291 +783 971 +554 937 +932 487 +36 458 +385 379 +117 156 +937 285 +566 647 +777 925 +539 773 +29 347 +440 128 +940 210 +305 346 +811 832 +660 298 +955 907 +181 692 +531 678 +173 782 +818 797 +703 806 +634 513 +958 429 +557 962 +76 587 +375 713 +654 40 +392 898 +862 865 +407 114 +619 181 +235 77 +375 370 +698 180 +306 223 +233 97 +657 582 +672 47 +803 674 +320 372 +201 644 +203 797 +714 54 +717 847 +95 162 +218 263 +754 979 +269 175 +855 871 +184 317 +486 16 +88 498 +350 710 +730 539 +720 315 +447 171 +578 709 +328 937 +188 750 +300 580 +691 571 +878 706 +113 305 +675 929 +918 542 +207 79 +231 160 +598 80 +932 157 +471 54 +813 234 +385 300 +118 261 +257 646 +17 615 +33 505 +171 979 +19 844 +103 113 +857 615 +381 933 +928 740 +923 727 +725 182 +967 646 +766 34 +979 600 +427 674 +316 580 +761 865 +439 224 +988 26 +610 998 +955 361 +696 649 +526 995 +146 377 +767 119 +596 470 +858 219 +832 415 +542 31 +409 121 +28 11 +8 51 +184 711 +138 979 +132 563 +486 492 +965 4 +513 633 +615 8 +778 990 +683 625 +795 289 +606 463 +312 487 +199 98 +483 741 +597 632 +638 522 +143 938 +513 957 +336 657 +621 846 +416 68 +688 614 +748 351 +338 348 +948 687 +91 385 +886 464 +531 868 +720 451 +819 344 +648 390 +263 90 +252 594 +997 123 +210 453 +916 693 +382 492 +591 289 +116 42 +818 601 +103 851 +250 431 +890 636 +168 556 +678 544 +14 441 +908 274 +280 368 +711 577 +204 7 +146 840 +147 452 +612 651 +44 770 +666 974 +551 828 +214 953 +949 924 +859 194 +833 862 +114 470 +643 951 +743 215 +173 493 +43 69 +202 607 +818 96 +910 264 +971 680 +237 510 +959 687 +941 731 +961 306 +513 690 +155 550 +130 289 +989 889 +674 607 +290 318 +448 633 +295 749 +525 513 +193 52 +56 832 +351 728 +301 411 +799 554 +668 101 +652 788 +1 418 +439 435 +353 27 +110 151 +182 313 +863 276 +34 268 +354 408 +470 510 +810 727 +56 110 +468 590 +286 508 +973 66 +581 676 +751 110 +895 862 +266 526 +469 414 +453 52 +111 597 +138 466 +383 735 +108 977 +276 515 +917 982 +629 170 +773 586 +983 698 +665 371 +714 35 +107 521 +342 721 +627 937 +960 551 +556 260 +732 993 +564 823 +866 696 +796 407 +992 349 +333 497 +544 687 +177 781 +405 624 +262 401 +306 196 +347 265 +503 83 +120 445 +830 303 +820 327 +4 839 +136 10 +178 257 +424 593 +300 50 +377 474 +310 919 +628 11 +462 382 +165 76 +717 881 +66 95 +638 580 +628 140 +352 240 +945 222 +789 76 +196 943 +14 753 +449 259 +100 575 +560 362 +24 153 +50 525 +430 752 +920 245 +503 238 +842 232 +699 176 +440 100 +654 303 +344 3 +835 709 +491 784 +392 892 +39 600 +604 425 +945 867 +983 374 +609 514 +804 173 +149 187 +613 864 +435 523 +329 376 +719 657 +58 463 +671 881 +853 817 +521 486 +856 412 +868 579 +825 902 +733 208 +399 947 +390 941 +976 419 +86 786 +456 578 +903 901 +743 280 +645 188 +279 64 +234 684 +652 69 +779 250 +951 693 +322 161 +354 112 +412 392 +424 258 +39 503 +762 475 +308 502 +501 846 +489 245 +698 59 +334 1000 +496 217 +905 654 +528 890 +192 264 +337 76 +234 346 +206 291 +403 617 +795 75 +333 987 +612 517 +530 314 +16 628 +886 526 +998 217 +455 32 +209 668 +5 393 +671 824 +678 710 +146 610 +477 76 +558 682 +942 123 +249 661 +874 69 +192 465 +284 394 +321 790 +877 599 +719 270 +547 572 +924 868 +40 648 +373 223 +441 132 +362 247 +839 382 +539 658 +342 207 +110 182 +387 780 +11 839 +712 755 +1000 901 +46 204 +723 124 +494 799 +255 763 +811 526 +944 304 +558 420 +171 701 +876 713 +383 603 +796 824 +174 774 +168 829 +56 490 +829 71 +168 291 +341 968 +408 492 +57 88 +292 678 +42 546 +523 760 +924 365 +879 326 +863 871 +807 498 +102 771 +146 802 +160 542 +686 279 +670 395 +262 870 +153 191 +15 93 +280 340 +653 166 +696 582 +948 679 +833 684 +54 180 +783 605 +836 185 +876 565 +141 216 +83 876 +947 991 +732 171 +982 842 +59 215 +474 307 +878 695 +597 219 +714 659 +683 956 +132 614 +263 287 +861 223 +567 461 +131 719 +128 49 +161 394 +575 893 +803 426 +822 784 +933 113 +606 522 +907 86 +534 323 +811 690 +207 283 +76 436 +722 103 +36 918 +348 102 +972 316 +602 183 +269 87 +146 108 +273 905 +596 37 +305 992 +725 461 +504 899 +992 549 +83 466 +307 693 +993 422 +523 530 +17 93 +538 836 +837 106 +589 728 +527 293 +719 308 +412 872 +591 318 +212 696 +918 708 +888 568 +285 255 +200 876 +463 19 +27 564 +201 425 +904 183 +660 251 +248 413 +173 763 +89 766 +718 286 +831 640 +211 577 +462 368 +551 65 +947 311 +795 974 +746 747 +106 489 +730 642 +234 823 +621 97 +603 214 +603 817 +227 743 +765 354 +261 849 +695 449 +591 990 +985 830 +150 49 +849 273 +834 671 +547 269 +505 749 +732 476 +950 461 +223 301 +206 513 +704 620 +159 149 +132 848 +622 132 +832 383 +397 114 +804 255 +818 867 +644 177 +366 19 +405 511 +208 430 +3 819 +409 775 +326 684 +684 413 +104 906 +637 838 +13 332 +506 612 +154 186 +677 738 +807 504 +401 640 +513 1000 +356 859 +837 636 +810 377 +397 264 +996 166 +996 276 +463 519 +766 8 +119 430 +882 841 +246 827 +920 977 +887 347 +711 992 +912 977 +195 170 +291 524 +394 275 +648 299 +835 600 +890 415 +9 469 +606 25 +993 520 +187 921 +248 21 +129 654 +992 270 +396 341 +145 345 +726 347 +31 437 +193 996 +810 365 +431 708 +862 658 +530 593 +855 536 +127 207 +963 282 +889 330 +603 207 +77 507 +315 424 +511 872 +459 753 +173 347 +244 2 +196 750 +737 781 +556 713 +89 735 +683 618 +531 638 +880 605 +407 185 +269 793 +877 967 +170 401 +974 255 +132 476 +561 81 +219 528 +658 649 +847 165 +658 959 +581 702 +541 961 +847 432 +744 85 +675 624 +665 838 +757 937 +513 929 +917 884 +131 832 +947 180 +223 818 +252 357 +389 348 +602 61 +503 812 +696 924 +790 136 +105 149 +708 806 +802 535 +269 580 +783 566 +667 493 +509 847 +297 271 +907 658 +44 600 +350 581 +217 329 +390 752 +119 811 +47 900 +276 634 +606 528 +824 352 +332 296 +456 585 +34 446 +938 735 +781 35 +590 411 +24 339 +749 155 +960 484 +273 658 +196 194 +394 106 +203 547 +325 554 +695 617 +727 157 +87 47 +186 227 +792 516 +964 823 +982 681 +736 668 +367 298 +158 894 +743 9 +762 802 +798 838 +185 681 +309 999 +538 777 +101 572 +302 73 +49 208 +972 920 +68 211 +36 133 +527 936 +805 590 +475 105 +949 311 +737 844 +498 335 +500 41 +66 188 +48 573 +458 638 +293 523 +140 572 +92 57 +139 541 +996 76 +275 339 +730 429 +217 838 +268 971 +364 321 +926 801 +115 761 +142 600 +796 437 +946 66 +904 583 +791 354 +812 948 +255 622 +948 546 +639 158 +926 57 +853 926 +997 788 +607 337 +568 724 +398 179 +706 627 +407 542 +693 323 +421 410 +577 929 +645 799 +865 971 +266 586 +207 312 +452 463 +4 999 +59 723 +43 867 +997 821 +490 405 +728 194 +327 737 +455 328 +735 369 +114 538 +785 358 +437 89 +89 974 +223 112 +338 63 +94 438 +502 18 +879 720 +543 431 +884 736 +779 672 +857 75 +230 410 +234 857 +136 769 +296 782 +179 812 +67 419 +986 704 +436 759 +370 690 +335 376 +115 617 +616 147 +832 630 +262 505 +412 648 +488 219 +18 465 +623 342 +661 215 +551 624 +230 628 +503 790 +384 619 +410 179 +684 920 +618 480 +93 923 +666 938 +140 690 +331 392 +186 277 +510 459 +607 985 +893 527 +66 305 +450 770 +358 517 +628 750 +847 860 +443 459 +234 560 +577 798 +675 740 +235 503 +427 808 +771 83 +605 457 +853 737 +332 829 +301 385 +799 798 +618 417 +465 861 +525 722 +685 714 +58 760 +816 16 +698 214 +90 509 +479 473 +313 103 +133 897 +306 162 +615 121 +579 495 +765 386 +501 764 +618 982 +835 598 +873 461 +323 749 +667 37 +581 920 +66 278 +467 677 +835 323 +269 399 +684 558 +299 758 +40 986 +1 331 +918 360 +314 85 +559 200 +802 376 +790 875 +352 601 +548 35 +210 656 +802 628 +358 293 +674 513 +237 158 +933 891 +757 681 +188 905 +41 651 +779 819 +469 507 +546 464 +238 800 +640 20 +53 712 +860 212 +441 995 +735 318 +447 960 +9 816 +624 393 +331 905 +780 555 +203 998 +464 563 +156 780 +377 540 +65 387 +31 311 +130 118 +836 80 +10 194 +147 760 +225 515 +422 897 +114 27 +430 919 +514 210 +93 483 +783 350 +269 139 +996 524 +788 860 +209 622 +14 780 +656 400 +529 401 +244 896 +824 38 +641 560 +741 807 +931 365 +787 210 +223 506 +749 873 +73 64 +411 120 +438 949 +854 166 +917 687 +355 402 +655 470 +129 128 +465 292 +528 70 +917 516 +151 895 +308 832 +846 423 +66 234 +710 306 +959 793 +935 27 +688 224 +734 924 +696 467 +118 717 +848 308 +227 326 +55 693 +1 659 +470 248 +14 417 +683 930 +75 913 +877 471 +318 556 +541 1 +313 231 +196 644 +647 491 +761 679 +256 967 +645 781 +925 101 +164 543 +83 8 +770 350 +225 802 +89 472 +914 862 +902 779 +91 876 +641 65 +839 332 +880 829 +337 309 +772 389 +657 824 +666 733 +570 496 +980 299 +435 593 +202 716 +489 820 +725 723 +410 1000 +844 367 +540 915 +209 128 +892 752 +980 702 +921 117 +619 308 +513 71 +121 476 +695 284 +851 642 +893 599 +704 1000 +230 531 +436 981 +76 575 +576 886 +132 803 +616 725 +788 994 +618 63 +611 813 +687 40 +863 232 +455 346 +117 581 +162 915 +779 486 +808 259 +530 446 +53 503 +326 854 +111 32 +449 898 +997 531 +329 890 +412 908 +825 255 +398 554 +227 893 +984 876 +863 194 +541 874 +993 996 +596 482 +260 984 +796 756 +995 223 +540 763 +811 468 +462 322 +95 667 +440 273 +361 482 +888 227 +22 922 +575 849 +600 114 +792 892 +442 193 +27 969 +559 586 +183 766 +818 877 +564 750 +648 746 +576 810 +207 768 +805 723 +755 225 +736 586 +830 574 +497 154 +941 26 +27 703 +610 279 +668 741 +885 549 +916 972 +217 815 +228 923 +74 871 +141 802 +627 498 +270 3 +330 924 +293 988 +856 384 +103 289 +346 110 +271 923 +463 665 +163 134 +225 920 +203 500 +513 102 +191 522 +846 744 +469 989 +4 26 +894 449 +741 713 +99 406 +797 482 +560 913 +809 398 +794 109 +808 689 +33 943 +98 395 +705 234 +186 668 +715 243 +921 376 +519 213 +885 267 +600 637 +159 170 +458 818 +450 538 +227 557 +52 472 +106 388 +725 429 +881 211 +548 959 +314 67 +407 720 +879 304 +645 543 +293 199 +506 734 +196 345 +767 39 +123 705 +298 291 +228 122 +185 502 +637 293 +605 566 +914 768 +679 442 +174 187 +715 58 +168 968 +564 188 +298 32 +738 801 +825 188 +797 92 +94 227 +256 875 +85 437 +47 945 +644 247 +58 112 +686 223 +384 910 +606 461 +333 294 +146 689 +282 224 +422 204 +929 853 +714 447 +69 684 +548 961 +131 369 +136 646 +7 165 +509 822 +593 92 +156 382 +618 123 +970 639 +448 835 +926 239 +466 732 +603 837 +742 877 +966 39 +879 458 +962 302 +630 45 +861 347 +232 964 +652 148 +610 243 +570 94 +807 21 +540 833 +344 694 +555 576 +570 967 +211 664 +323 658 +760 750 +838 174 +471 334 +408 390 +549 189 +468 844 +204 835 +733 935 +778 730 +490 34 +367 296 +732 213 +896 35 +314 945 +871 43 +241 850 +415 471 +885 876 +509 756 +289 546 +430 71 +200 537 +272 48 +950 982 +508 909 +678 972 +209 911 +746 11 +624 83 +742 322 +440 807 +167 376 +272 553 +897 726 +162 154 +192 929 +422 884 +237 157 +942 372 +882 743 +97 448 +230 402 +275 436 +477 834 +882 765 +162 723 +231 26 +261 235 +138 130 +660 112 +24 205 +527 555 +975 764 +385 42 +10 272 +693 116 +964 532 +10 803 +279 524 +590 910 +769 111 +671 471 +791 32 +780 281 +96 322 +640 394 +930 263 +593 717 +227 902 +36 33 +781 102 +322 125 +395 11 +937 352 +177 500 +230 385 +586 407 +634 800 +648 198 +671 916 +583 297 +946 834 +692 569 +856 566 +577 209 +848 813 +3 570 +407 337 +234 313 +457 929 +638 254 +445 686 +448 721 +532 700 +307 836 +312 603 +908 416 +628 131 +569 455 +674 63 +653 378 +8 563 +408 64 +60 853 +460 56 +813 849 +778 561 +967 772 +344 105 +785 805 +722 142 +503 878 +720 87 +118 748 +593 463 +569 969 +745 826 +22 431 +230 327 +767 110 +193 909 +770 126 +216 137 +367 474 +549 133 +195 717 +143 141 +143 611 +546 239 +787 786 +184 161 +810 908 +700 750 +137 468 +152 457 +908 941 +102 792 +425 219 +556 58 +437 949 +271 366 +32 208 +948 538 +622 740 +731 784 +124 520 +592 807 +180 783 +29 397 +974 697 +831 969 +552 655 +937 141 +866 339 +106 960 +658 366 +796 882 +631 545 +813 918 +427 271 +957 418 +676 988 +983 858 +271 824 +797 412 +95 839 +435 791 +928 897 +848 119 +242 753 +159 8 +350 761 +493 540 +375 904 +128 491 +796 17 +846 297 +397 391 +296 275 +247 130 +940 812 +394 520 +575 409 +164 438 +600 668 +497 550 +241 874 +579 761 +340 188 +182 629 +262 824 +273 122 +242 623 +160 112 +125 233 +961 809 +472 807 +812 603 +108 469 +344 61 +505 719 +98 722 +127 378 +515 748 +921 664 +496 359 +291 420 +420 62 +928 378 +357 760 +364 259 +222 564 +23 387 +821 380 +336 78 +916 412 +219 515 +47 229 +241 550 +284 221 +168 850 +818 314 +271 886 +102 124 +553 741 +858 585 +821 296 +945 642 +358 269 +220 114 +333 589 +281 676 +864 758 +666 676 +576 242 +113 965 +357 615 +916 943 +237 434 +731 395 +59 408 +643 867 +79 374 +460 943 +526 744 +8 976 +357 355 +212 841 +256 399 +538 629 +303 668 +977 146 +639 822 +880 191 +728 704 +496 84 +258 916 +165 991 +701 208 +65 322 +247 562 +306 95 +700 28 +963 22 +940 445 +572 152 +310 720 +425 685 +507 110 +796 650 +465 213 +863 629 +838 197 +466 845 +161 599 +414 23 +792 460 +228 315 +305 466 +359 616 +480 614 +146 952 +990 696 +284 361 +269 639 +73 401 +942 571 +137 906 +772 504 +377 486 +975 236 +123 362 +40 963 +684 374 +895 88 +979 873 +847 886 +226 908 +711 201 +424 494 +643 556 +183 377 +572 69 +845 280 +493 333 +997 936 +630 754 +437 987 +6 898 +173 777 +895 261 +500 58 +825 549 +98 185 +292 990 +730 266 +684 523 +269 64 +64 353 +874 447 +461 971 +419 919 +538 815 +22 291 +527 765 +132 404 +978 175 +557 303 +806 86 +992 67 +55 545 +392 871 +1000 195 +444 329 +788 952 +808 704 +742 892 +652 598 +407 554 +980 61 +45 900 +646 900 +998 966 +207 536 +58 291 +778 4 +773 600 +883 893 +868 535 +703 998 +878 75 +124 883 +7 885 +849 508 +128 675 +34 623 +609 305 +374 857 +818 22 +930 153 +803 536 +722 352 +508 194 +115 435 +159 868 +447 702 +992 150 +546 724 +72 480 +839 85 +132 901 +353 90 +340 321 +180 960 +93 100 +113 499 +733 514 +628 358 +266 967 +709 367 +186 644 +58 338 +471 275 +987 970 +593 514 +850 988 +60 90 +549 23 +801 717 +200 273 +987 906 +174 354 +497 232 +251 60 +583 678 +165 994 +219 996 +515 531 +54 769 +565 641 +471 45 +48 61 +820 259 +545 987 +257 203 +730 383 +291 994 +83 536 +479 520 +510 456 +403 552 +425 556 +392 966 +126 533 +603 532 +150 947 +438 284 +107 534 +507 50 +415 545 +619 992 +656 131 +451 738 +274 118 +761 686 +529 702 +216 273 +883 340 +386 486 +499 277 +26 228 +16 529 +856 99 +186 321 +271 274 +813 595 +532 550 +790 704 +993 430 +114 907 +258 447 +341 354 +157 841 +819 649 +762 289 +880 514 +905 297 +509 67 +527 991 +606 625 +280 826 +825 958 +215 889 +315 309 +183 102 +971 526 +585 463 +955 481 +709 256 +102 900 +230 986 +194 826 +853 297 +657 539 +710 382 +954 47 +469 2 +88 564 +610 486 +49 694 +47 366 +208 39 +58 129 +861 424 +640 767 +810 473 +9 73 +206 862 +628 97 +959 359 +851 319 +301 201 +234 215 +441 308 +152 590 +557 677 +14 24 +785 948 +42 405 +979 391 +181 820 +870 513 +706 933 +168 135 +803 761 +236 373 +369 261 +147 358 +55 60 +577 460 +735 600 +446 879 +594 460 +652 450 +812 722 +857 597 +794 492 +473 4 +227 506 +426 171 +85 131 +369 873 +251 493 +358 736 +430 923 +981 789 +15 650 +340 783 +901 245 +554 714 +679 748 +204 651 +602 2 +605 702 +719 212 +24 355 +3 838 +763 374 +813 185 +753 477 +848 965 +872 762 +574 908 +492 680 +931 796 +297 341 +137 687 +161 907 +815 874 +308 1000 +253 822 +222 612 +483 230 +90 299 +993 720 +47 531 +26 78 +589 19 +760 958 +52 398 +223 664 +479 581 +663 506 +286 372 +246 151 +363 308 +929 934 +323 203 +478 706 +345 307 +592 771 +385 855 +353 667 +672 905 +125 363 +727 769 +959 967 +234 384 +771 542 +323 602 +659 901 +504 620 +911 251 +133 856 +787 488 +915 961 +539 532 +26 388 +248 193 +179 124 +182 334 +465 962 +127 881 +275 118 +29 35 +80 512 +32 330 +505 513 +669 359 +353 850 +464 840 +834 732 +236 982 +388 154 +508 631 +203 98 +858 348 +810 933 +227 999 +929 599 +577 274 +369 476 +965 261 +703 191 +972 524 +242 577 +485 594 +814 214 +571 366 +590 188 +370 134 +965 721 +529 302 +210 37 +969 841 +366 393 +881 17 +648 21 +139 392 +578 57 +825 15 +656 713 +225 946 +620 625 +126 716 +930 377 +78 585 +904 793 +891 900 +788 741 +917 954 +947 426 +309 560 +514 188 +359 262 +588 931 +189 497 +385 121 +643 734 +468 121 +580 183 +512 713 +935 301 +968 148 +112 175 +209 636 +836 321 +740 37 +652 799 +646 597 +101 969 +641 514 +924 848 +775 513 +638 761 +871 959 +304 874 +59 854 +447 303 +816 833 +492 690 +879 302 +322 124 +596 904 +804 798 +286 719 +146 337 +44 339 +772 54 +757 799 +202 743 +569 817 +426 298 +560 48 +614 978 +788 131 +49 593 +665 20 +776 329 +990 965 +619 178 +976 952 +762 668 +202 312 +204 695 +547 53 +402 23 +594 579 +285 739 +573 428 +445 73 +333 229 +116 762 +665 293 +838 317 +903 26 +67 531 +86 279 +323 805 +59 648 +976 105 +815 167 +327 445 +441 2 +389 178 +492 568 +961 81 +250 309 +743 918 +822 326 +487 707 +238 258 +3 481 +121 810 +175 727 +854 559 +602 478 +429 958 +872 329 +183 57 +893 79 +259 499 +457 222 +640 982 +266 731 +121 167 +354 916 +258 291 +372 94 +243 329 +942 312 +315 471 +108 295 +733 783 +769 218 +142 215 +433 767 +624 154 +977 204 +577 245 +308 324 diff --git a/algorithms/lab06/tests/02-dfs/10.ref b/algorithms/lab06/tests/02-dfs/10.ref new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/10.ref @@ -0,0 +1 @@ +5 diff --git a/algorithms/lab06/tests/02-dfs/2.in b/algorithms/lab06/tests/02-dfs/2.in new file mode 100644 index 0000000..07be9de --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/2.in @@ -0,0 +1,101 @@ +100 100 +89 29 +36 72 +72 49 +8 49 +23 5 +75 31 +8 11 +24 73 +15 73 +88 99 +27 23 +39 93 +91 39 +18 27 +35 55 +95 56 +29 42 +68 1 +8 52 +61 12 +96 36 +69 61 +98 44 +97 5 +84 45 +36 32 +62 12 +13 91 +25 34 +19 30 +38 8 +2 98 +13 20 +61 63 +100 12 +93 10 +6 5 +86 8 +90 83 +92 29 +41 14 +62 63 +78 59 +76 28 +60 33 +73 30 +20 10 +3 81 +51 47 +7 8 +81 11 +64 33 +39 9 +48 60 +21 9 +99 84 +9 76 +63 49 +17 14 +30 48 +27 98 +22 59 +76 35 +44 41 +4 42 +89 23 +33 44 +62 100 +88 48 +6 64 +72 51 +98 99 +38 35 +95 45 +35 59 +89 27 +7 43 +63 43 +79 28 +43 50 +2 26 +62 68 +19 66 +34 84 +18 57 +40 38 +31 38 +78 98 +27 62 +67 23 +25 62 +100 85 +72 8 +91 61 +1 64 +66 45 +63 7 +37 76 +95 30 +88 58 diff --git a/algorithms/lab06/tests/02-dfs/2.ref b/algorithms/lab06/tests/02-dfs/2.ref new file mode 100644 index 0000000..60d3b2f --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/2.ref @@ -0,0 +1 @@ +15 diff --git a/algorithms/lab06/tests/02-dfs/3.in b/algorithms/lab06/tests/02-dfs/3.in new file mode 100644 index 0000000..e7389e8 --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/3.in @@ -0,0 +1 @@ +200 0 diff --git a/algorithms/lab06/tests/02-dfs/3.ref b/algorithms/lab06/tests/02-dfs/3.ref new file mode 100644 index 0000000..08839f6 --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/3.ref @@ -0,0 +1 @@ +200 diff --git a/algorithms/lab06/tests/02-dfs/4.in b/algorithms/lab06/tests/02-dfs/4.in new file mode 100644 index 0000000..884203a --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/4.in @@ -0,0 +1,20101 @@ +200 20100 +45 177 +82 137 +52 127 +99 74 +35 144 +171 30 +21 47 +88 180 +152 4 +71 85 +69 120 +84 96 +175 102 +4 55 +189 71 +88 60 +2 17 +92 47 +129 152 +182 52 +85 154 +58 71 +95 84 +138 67 +91 147 +21 149 +65 131 +49 121 +31 90 +89 84 +130 82 +182 178 +107 157 +172 195 +130 139 +89 147 +108 97 +34 8 +164 194 +54 117 +155 136 +174 198 +102 139 +126 182 +86 98 +80 111 +198 16 +164 112 +74 150 +38 175 +157 182 +122 61 +89 170 +162 109 +72 43 +176 81 +108 156 +73 130 +132 170 +23 21 +84 51 +7 19 +148 24 +72 171 +161 199 +107 200 +193 79 +13 197 +127 193 +14 61 +129 104 +33 194 +80 13 +192 59 +124 59 +40 86 +80 101 +156 88 +195 36 +134 147 +142 162 +67 78 +3 39 +53 50 +58 88 +11 147 +50 144 +152 18 +101 15 +48 95 +76 138 +84 140 +96 84 +97 19 +181 115 +146 161 +110 149 +90 11 +16 190 +119 38 +50 194 +84 54 +178 137 +32 28 +157 90 +60 158 +28 140 +197 48 +51 79 +103 98 +161 109 +102 8 +131 126 +24 41 +89 26 +58 72 +200 120 +18 91 +106 182 +128 176 +134 42 +117 167 +45 139 +38 176 +10 17 +102 32 +47 193 +175 34 +153 132 +6 183 +92 11 +120 174 +134 140 +102 160 +36 158 +110 136 +91 133 +197 62 +25 175 +173 101 +116 119 +160 115 +99 51 +92 45 +61 73 +148 144 +114 73 +11 164 +86 166 +20 73 +28 102 +185 63 +155 176 +92 10 +193 101 +59 172 +46 84 +54 178 +13 194 +176 194 +72 157 +187 193 +51 10 +131 171 +21 28 +142 115 +119 6 +130 57 +15 5 +111 174 +129 150 +80 45 +137 42 +34 109 +176 188 +21 80 +191 77 +109 130 +115 10 +33 76 +99 12 +96 81 +116 176 +133 42 +173 60 +159 4 +170 180 +77 129 +17 115 +46 136 +173 73 +174 93 +175 73 +41 68 +112 158 +118 40 +40 67 +38 187 +147 61 +76 110 +199 18 +83 104 +107 90 +181 63 +161 171 +121 132 +15 153 +61 62 +160 13 +9 187 +8 167 +153 48 +131 113 +82 81 +95 196 +133 5 +135 104 +24 70 +181 162 +53 129 +122 67 +53 3 +108 44 +27 90 +121 152 +14 35 +132 50 +167 163 +162 64 +197 173 +162 106 +70 79 +107 25 +177 105 +103 69 +14 75 +84 182 +174 34 +22 118 +72 53 +98 116 +95 26 +82 195 +192 176 +15 169 +1 39 +116 187 +124 68 +15 187 +16 133 +16 27 +179 48 +22 63 +198 124 +181 164 +30 195 +21 159 +114 54 +133 30 +55 70 +152 108 +195 103 +6 29 +37 152 +35 79 +139 76 +29 46 +139 33 +140 182 +77 5 +59 62 +62 187 +167 61 +89 92 +106 129 +69 107 +50 126 +160 15 +192 162 +18 130 +120 34 +95 75 +104 1 +4 134 +106 68 +188 100 +160 39 +173 115 +161 170 +89 41 +155 129 +193 146 +164 94 +145 146 +198 102 +17 83 +60 157 +41 84 +108 42 +193 200 +81 159 +10 185 +148 111 +79 99 +6 169 +54 162 +68 126 +22 16 +168 128 +40 16 +99 111 +46 186 +9 69 +40 24 +41 179 +168 175 +25 6 +87 150 +95 115 +13 28 +51 54 +3 17 +182 88 +8 130 +186 39 +162 99 +114 184 +129 38 +143 184 +191 168 +71 170 +31 84 +23 95 +60 23 +15 176 +138 148 +26 108 +169 116 +75 16 +59 105 +21 23 +90 133 +3 140 +129 192 +158 40 +100 47 +192 181 +87 86 +81 138 +190 178 +23 179 +32 178 +189 126 +26 76 +110 161 +168 73 +61 184 +16 24 +81 6 +34 97 +197 25 +135 194 +88 138 +70 55 +157 84 +23 1 +66 152 +100 29 +31 98 +53 93 +59 194 +155 149 +87 158 +117 142 +85 73 +110 150 +32 53 +49 124 +75 52 +143 70 +91 13 +70 75 +149 31 +177 154 +66 81 +148 71 +180 162 +180 31 +159 97 +148 194 +9 5 +21 9 +73 55 +42 79 +154 176 +162 62 +10 186 +198 119 +187 133 +123 174 +91 115 +25 68 +114 50 +29 162 +8 177 +79 31 +93 17 +154 117 +26 184 +165 151 +199 192 +129 62 +118 20 +83 57 +102 26 +82 28 +43 78 +175 198 +89 49 +135 189 +122 90 +160 111 +52 10 +1 187 +120 167 +84 30 +68 54 +105 80 +107 146 +36 17 +106 128 +51 148 +39 69 +135 185 +52 21 +178 111 +171 127 +43 4 +79 125 +133 62 +12 82 +128 115 +18 92 +46 113 +131 181 +110 83 +85 136 +144 70 +160 4 +200 27 +94 72 +6 97 +47 124 +107 31 +144 1 +60 12 +61 98 +34 135 +185 50 +165 178 +133 14 +92 110 +43 131 +30 7 +60 106 +20 197 +73 115 +25 148 +184 137 +185 55 +37 91 +91 156 +90 72 +181 21 +89 100 +170 7 +123 59 +30 37 +144 83 +140 163 +27 165 +155 147 +185 177 +94 4 +78 156 +9 50 +4 53 +101 178 +111 108 +12 64 +38 152 +87 115 +156 179 +178 123 +112 7 +60 139 +119 41 +106 152 +131 14 +64 194 +70 155 +79 134 +80 176 +4 127 +171 20 +105 184 +193 97 +58 166 +15 131 +52 1 +142 25 +16 31 +199 37 +120 181 +93 51 +80 38 +138 179 +66 5 +170 31 +53 37 +38 188 +129 132 +116 18 +199 24 +12 165 +43 31 +20 52 +118 109 +78 44 +81 183 +35 18 +23 146 +128 101 +87 106 +154 97 +32 10 +161 14 +164 24 +174 107 +160 16 +142 156 +186 165 +126 127 +46 142 +88 44 +95 162 +95 183 +170 188 +82 47 +80 179 +59 178 +75 78 +149 136 +81 50 +96 133 +135 64 +6 198 +96 113 +64 36 +90 17 +197 11 +34 53 +88 119 +17 185 +9 166 +178 157 +172 191 +25 83 +161 39 +121 6 +160 93 +175 194 +67 46 +184 43 +65 108 +46 29 +120 124 +166 177 +103 59 +154 58 +170 190 +159 172 +197 59 +109 189 +67 144 +36 18 +31 136 +10 21 +172 177 +138 54 +7 71 +123 170 +139 22 +191 47 +179 121 +118 171 +139 1 +196 19 +74 7 +198 98 +105 94 +27 22 +56 37 +137 197 +181 25 +137 16 +147 32 +96 98 +22 28 +13 29 +113 12 +96 111 +131 153 +143 178 +119 7 +80 98 +126 57 +129 20 +28 26 +62 199 +4 199 +72 31 +165 57 +10 184 +49 85 +170 25 +194 125 +48 7 +107 75 +133 48 +194 131 +165 109 +18 102 +167 170 +50 107 +75 157 +128 39 +143 189 +100 104 +6 182 +86 136 +164 3 +127 85 +179 60 +176 91 +22 179 +169 142 +184 171 +115 64 +119 98 +170 1 +150 179 +13 4 +171 34 +21 166 +63 92 +167 145 +61 75 +180 28 +180 132 +145 115 +67 20 +148 119 +112 60 +177 106 +81 194 +142 51 +17 70 +146 143 +17 200 +173 17 +71 188 +101 24 +133 56 +68 174 +44 90 +10 43 +179 54 +11 184 +138 103 +138 40 +116 21 +6 8 +172 87 +4 183 +127 1 +135 66 +149 189 +8 86 +135 62 +62 68 +70 71 +140 162 +19 183 +4 48 +22 62 +153 180 +93 143 +15 3 +184 192 +142 94 +31 70 +41 132 +78 179 +191 32 +142 159 +13 104 +135 5 +4 94 +91 44 +75 89 +108 33 +112 134 +18 87 +139 171 +30 150 +173 20 +126 181 +109 191 +78 158 +161 95 +16 141 +110 7 +163 197 +176 52 +171 87 +177 30 +63 111 +77 52 +92 153 +112 130 +73 13 +111 61 +42 72 +41 175 +141 41 +10 14 +77 154 +101 20 +10 183 +83 193 +194 134 +61 106 +36 84 +165 52 +8 154 +58 54 +76 134 +117 46 +3 120 +53 176 +37 113 +77 85 +192 87 +62 73 +13 128 +198 39 +52 104 +11 21 +48 128 +114 31 +64 25 +2 200 +133 60 +175 178 +4 188 +113 107 +119 181 +49 115 +12 144 +12 53 +52 32 +47 137 +191 31 +115 3 +93 198 +146 50 +186 161 +80 3 +31 74 +87 180 +101 127 +134 100 +91 129 +87 42 +180 142 +43 76 +62 52 +130 71 +72 189 +164 176 +155 5 +188 177 +64 10 +91 33 +43 55 +197 19 +37 67 +151 24 +137 111 +159 60 +19 139 +62 86 +130 13 +123 107 +157 193 +115 100 +64 95 +151 187 +74 179 +83 118 +185 137 +193 139 +161 156 +17 75 +27 160 +34 136 +124 187 +50 23 +87 58 +46 172 +183 68 +31 67 +31 19 +33 149 +25 60 +144 97 +177 16 +149 96 +57 118 +25 153 +133 84 +46 76 +36 199 +150 44 +47 33 +189 7 +24 159 +34 35 +107 187 +196 29 +23 133 +126 109 +70 95 +13 55 +39 192 +58 124 +11 148 +63 45 +116 133 +198 149 +90 38 +12 173 +42 106 +21 83 +137 96 +77 163 +116 126 +104 10 +178 103 +172 38 +94 104 +78 191 +103 52 +20 185 +163 189 +93 22 +76 193 +187 98 +9 103 +136 77 +77 58 +125 70 +119 180 +170 177 +37 12 +46 143 +30 46 +96 177 +11 185 +43 2 +80 187 +25 87 +119 62 +39 2 +148 57 +152 113 +174 101 +84 126 +115 172 +117 27 +105 99 +12 132 +170 106 +64 138 +198 163 +106 39 +24 77 +88 178 +52 150 +76 75 +79 180 +155 88 +96 55 +128 68 +21 35 +15 172 +29 159 +97 9 +86 54 +139 147 +149 2 +67 89 +132 151 +95 87 +38 193 +195 130 +85 47 +176 3 +182 100 +189 65 +117 59 +139 178 +70 12 +177 23 +119 17 +150 33 +67 133 +24 51 +188 91 +174 15 +62 45 +60 121 +166 76 +157 139 +38 150 +193 192 +52 197 +142 36 +111 109 +103 197 +5 21 +198 158 +69 118 +68 186 +147 22 +182 147 +138 34 +23 125 +184 149 +175 39 +52 86 +161 51 +192 177 +181 179 +148 130 +45 36 +83 146 +4 2 +60 195 +162 172 +57 159 +5 115 +53 193 +118 28 +155 56 +14 29 +193 129 +101 94 +77 94 +150 102 +118 48 +34 26 +47 58 +43 100 +110 165 +85 160 +35 185 +25 145 +40 69 +67 50 +107 93 +198 41 +4 45 +117 124 +66 77 +19 127 +141 138 +60 1 +107 186 +56 145 +190 121 +72 112 +96 176 +62 5 +187 129 +35 169 +89 174 +175 94 +165 74 +191 29 +145 97 +35 130 +131 187 +137 27 +98 185 +96 163 +178 51 +139 92 +27 77 +134 193 +115 148 +14 83 +43 152 +28 68 +65 24 +67 8 +55 122 +152 160 +122 47 +167 171 +150 86 +97 180 +103 13 +198 55 +96 131 +63 48 +87 90 +43 46 +70 175 +194 46 +87 60 +117 177 +156 32 +128 73 +195 135 +78 101 +32 83 +31 85 +199 25 +131 140 +108 146 +157 195 +71 21 +102 76 +91 146 +167 197 +48 91 +195 146 +90 84 +60 178 +184 68 +30 119 +116 89 +163 142 +55 42 +170 76 +166 46 +29 22 +158 85 +9 121 +178 101 +52 144 +68 91 +160 19 +170 137 +34 117 +52 130 +146 79 +188 110 +64 191 +73 160 +73 118 +127 41 +106 89 +164 181 +139 138 +134 86 +72 77 +76 148 +84 42 +183 104 +101 71 +86 72 +187 60 +147 184 +139 133 +50 84 +179 1 +22 87 +2 7 +81 162 +140 54 +26 178 +136 73 +139 96 +55 85 +45 163 +6 47 +128 64 +23 54 +124 36 +28 59 +164 33 +51 40 +155 184 +196 36 +46 73 +179 97 +105 183 +158 38 +154 5 +29 164 +144 181 +15 192 +93 34 +184 59 +62 27 +71 176 +33 45 +88 128 +141 105 +81 33 +186 33 +74 113 +37 36 +47 76 +196 50 +120 11 +157 175 +71 112 +112 40 +198 196 +169 36 +3 134 +58 104 +127 188 +33 31 +178 176 +34 17 +134 166 +150 128 +30 176 +55 141 +199 80 +108 31 +144 177 +127 107 +53 79 +177 20 +132 64 +32 175 +98 167 +111 123 +186 191 +8 199 +157 162 +99 76 +69 64 +40 106 +142 133 +48 57 +191 20 +128 28 +96 79 +176 104 +27 43 +172 137 +113 145 +32 84 +72 16 +123 80 +120 194 +77 40 +102 56 +7 175 +163 67 +129 48 +141 16 +135 73 +180 144 +39 124 +137 105 +12 54 +26 157 +174 66 +67 175 +104 114 +55 105 +90 78 +159 18 +176 108 +170 172 +133 168 +57 89 +127 100 +18 37 +115 77 +29 67 +177 152 +155 63 +182 96 +22 193 +131 125 +52 67 +139 62 +95 127 +46 101 +108 141 +184 37 +173 117 +146 40 +127 84 +46 129 +82 79 +87 83 +176 48 +171 32 +149 66 +174 46 +106 78 +173 110 +139 173 +84 112 +4 156 +68 28 +85 50 +199 167 +67 149 +176 178 +44 139 +178 71 +54 55 +4 66 +79 26 +52 97 +107 49 +22 124 +85 163 +67 1 +140 59 +199 113 +135 31 +25 177 +104 21 +119 34 +59 100 +170 26 +152 42 +112 122 +92 123 +47 128 +117 164 +199 88 +187 52 +93 134 +47 67 +106 174 +117 93 +115 169 +37 139 +136 135 +68 16 +111 190 +99 192 +141 98 +190 89 +42 20 +139 2 +51 195 +169 176 +107 169 +180 29 +183 199 +48 169 +1 114 +56 55 +160 5 +51 146 +47 161 +124 167 +80 145 +114 21 +94 179 +27 12 +119 10 +74 139 +165 81 +178 138 +48 118 +189 35 +9 185 +13 195 +103 187 +124 139 +175 158 +21 128 +134 120 +39 163 +164 46 +79 126 +154 126 +69 83 +148 21 +32 114 +27 28 +133 61 +105 18 +105 43 +78 130 +127 80 +84 124 +171 183 +193 179 +163 69 +183 38 +50 27 +66 114 +197 43 +48 142 +27 63 +179 16 +142 163 +153 149 +110 166 +80 63 +65 117 +78 97 +125 31 +164 161 +52 70 +160 105 +134 154 +187 189 +176 62 +168 16 +180 193 +77 120 +97 125 +41 167 +12 77 +26 153 +116 103 +6 109 +38 82 +175 56 +138 90 +39 143 +116 43 +22 44 +6 88 +3 35 +169 89 +148 178 +122 125 +92 67 +50 164 +13 143 +172 124 +124 168 +158 134 +199 165 +45 180 +41 195 +90 103 +20 57 +194 44 +196 22 +111 16 +164 85 +37 15 +119 134 +80 52 +118 21 +104 89 +72 110 +119 126 +156 84 +72 100 +45 198 +25 11 +66 76 +158 142 +187 137 +132 42 +142 39 +159 99 +42 147 +166 10 +76 24 +127 122 +156 53 +116 88 +83 174 +163 185 +71 174 +15 8 +128 119 +56 144 +149 177 +132 119 +78 98 +89 183 +21 126 +101 133 +184 63 +43 57 +148 74 +164 133 +125 138 +9 145 +200 73 +67 49 +40 158 +103 71 +119 189 +146 16 +159 183 +65 102 +189 96 +74 196 +29 5 +30 165 +94 181 +178 14 +159 169 +183 118 +52 36 +130 120 +140 8 +174 164 +123 18 +90 56 +62 146 +106 115 +126 48 +88 154 +130 104 +96 86 +21 32 +34 165 +32 95 +111 103 +37 51 +148 198 +92 141 +136 81 +141 30 +97 166 +76 48 +93 32 +15 106 +94 178 +75 184 +34 145 +98 133 +12 142 +194 108 +55 139 +143 160 +91 95 +148 122 +71 47 +63 160 +85 151 +9 1 +11 199 +110 10 +196 57 +55 198 +166 179 +108 99 +152 194 +199 155 +98 12 +74 76 +105 142 +142 37 +52 137 +81 130 +3 85 +76 26 +86 78 +4 15 +46 74 +83 135 +147 42 +152 154 +165 61 +40 188 +53 5 +173 12 +139 3 +14 49 +91 30 +200 132 +69 27 +48 164 +120 118 +49 186 +44 174 +179 95 +113 110 +93 50 +50 13 +194 5 +116 169 +96 26 +75 162 +130 20 +137 30 +34 39 +100 137 +137 37 +40 20 +22 47 +55 100 +88 52 +111 159 +98 154 +72 156 +2 129 +56 141 +128 5 +129 18 +134 59 +28 180 +195 166 +92 190 +34 56 +127 35 +14 27 +93 185 +23 155 +20 199 +5 10 +45 49 +57 180 +100 88 +100 146 +23 83 +146 145 +198 108 +77 125 +43 12 +189 116 +132 135 +59 101 +115 136 +58 45 +127 151 +55 25 +59 182 +117 96 +189 49 +120 84 +3 83 +129 101 +140 76 +161 81 +41 82 +7 153 +97 109 +127 137 +1 163 +198 117 +137 131 +87 100 +109 74 +39 179 +32 107 +194 116 +84 83 +143 43 +44 64 +59 91 +14 73 +138 39 +123 96 +56 98 +130 156 +60 168 +34 78 +172 71 +135 142 +17 109 +59 199 +90 65 +57 151 +173 125 +193 175 +78 42 +124 191 +135 147 +74 88 +84 67 +110 45 +98 191 +167 102 +161 16 +170 182 +115 137 +5 116 +60 85 +96 97 +130 194 +50 129 +62 2 +179 143 +143 139 +30 89 +190 43 +60 16 +99 103 +188 143 +129 164 +20 76 +143 118 +122 69 +61 56 +74 118 +62 23 +87 175 +60 164 +67 124 +169 61 +6 159 +123 37 +35 108 +8 32 +35 40 +64 97 +24 123 +75 130 +64 118 +168 111 +184 88 +142 164 +115 106 +134 17 +91 130 +110 13 +74 159 +192 3 +97 54 +123 163 +131 78 +122 62 +69 127 +11 134 +54 164 +23 139 +167 72 +45 162 +63 162 +22 13 +6 53 +8 192 +150 164 +140 12 +81 57 +124 55 +117 189 +140 124 +100 171 +55 193 +170 158 +169 100 +130 39 +134 16 +31 81 +179 84 +126 80 +11 168 +3 88 +62 69 +146 49 +42 186 +3 186 +33 151 +30 192 +165 158 +176 159 +164 199 +54 91 +122 193 +32 24 +154 2 +71 29 +41 124 +155 94 +148 5 +101 125 +131 130 +86 183 +155 59 +128 108 +81 97 +164 81 +125 40 +71 165 +174 55 +142 35 +152 51 +163 129 +4 105 +173 178 +56 193 +149 155 +88 182 +153 192 +173 43 +185 37 +36 24 +10 161 +59 134 +88 101 +163 117 +184 141 +68 116 +168 63 +47 2 +55 169 +11 26 +22 49 +10 6 +21 106 +154 160 +122 17 +116 117 +198 146 +136 96 +141 194 +102 16 +142 11 +42 64 +126 156 +195 28 +117 103 +49 26 +73 200 +77 13 +42 158 +128 117 +58 76 +179 191 +190 118 +190 6 +62 194 +152 197 +176 16 +178 147 +35 61 +55 127 +180 103 +46 22 +197 126 +29 43 +147 81 +85 93 +189 66 +94 47 +182 183 +180 74 +20 88 +70 53 +175 111 +16 113 +112 32 +25 90 +45 152 +153 88 +18 127 +45 136 +59 153 +81 122 +175 181 +119 83 +58 86 +166 58 +60 176 +182 186 +77 106 +141 28 +179 79 +30 101 +198 116 +131 28 +84 98 +35 20 +30 102 +143 85 +17 149 +22 171 +172 91 +191 188 +10 1 +152 90 +156 59 +3 78 +48 149 +138 7 +86 147 +69 199 +188 181 +149 6 +66 173 +189 22 +89 132 +19 49 +146 103 +13 109 +37 43 +93 148 +168 2 +1 2 +139 35 +189 46 +175 154 +144 111 +18 166 +171 106 +193 110 +100 11 +108 76 +13 158 +96 130 +90 71 +163 158 +84 79 +161 40 +171 29 +168 107 +154 39 +161 22 +159 8 +145 52 +8 136 +163 32 +12 46 +190 67 +38 83 +43 50 +74 67 +127 102 +5 164 +42 141 +85 115 +152 191 +174 71 +34 47 +104 185 +13 96 +162 169 +82 145 +20 182 +131 20 +176 15 +102 154 +82 77 +166 133 +8 94 +153 45 +90 130 +195 184 +153 114 +114 117 +76 22 +67 118 +63 33 +162 96 +120 162 +118 46 +153 92 +112 48 +180 13 +116 45 +104 130 +93 138 +161 193 +78 16 +21 136 +171 130 +139 115 +35 179 +82 110 +56 148 +123 194 +116 77 +26 138 +173 26 +132 87 +129 189 +174 91 +96 190 +113 166 +189 168 +9 198 +102 185 +33 69 +139 104 +36 47 +76 2 +172 25 +21 123 +148 162 +93 111 +189 53 +142 87 +104 140 +21 1 +17 116 +73 114 +198 100 +156 92 +76 102 +132 183 +75 59 +162 40 +183 126 +118 155 +150 47 +73 33 +161 77 +179 38 +34 129 +65 98 +125 91 +41 139 +53 126 +74 106 +64 180 +2 92 +144 170 +143 154 +170 96 +25 85 +76 100 +158 200 +150 125 +121 78 +23 150 +12 175 +101 137 +21 16 +136 145 +113 139 +11 197 +199 67 +82 136 +183 132 +193 165 +90 44 +71 8 +182 55 +154 121 +29 8 +181 178 +172 82 +50 191 +161 80 +10 67 +162 94 +143 41 +7 104 +144 16 +48 200 +171 81 +200 42 +32 23 +188 52 +60 91 +73 153 +149 30 +50 70 +13 138 +102 48 +159 81 +23 34 +91 96 +40 175 +181 72 +189 47 +106 109 +141 122 +170 126 +20 166 +113 26 +124 96 +41 197 +21 189 +65 138 +63 65 +32 156 +31 159 +175 19 +98 33 +161 181 +179 194 +163 62 +3 163 +102 17 +184 127 +106 155 +168 194 +140 134 +196 153 +192 13 +82 60 +125 116 +109 29 +50 36 +193 32 +90 182 +105 23 +198 165 +120 83 +123 71 +163 57 +104 13 +30 29 +11 10 +112 11 +92 76 +126 103 +118 89 +184 80 +45 12 +145 25 +196 30 +22 36 +30 110 +27 67 +177 81 +26 140 +45 42 +27 181 +172 15 +195 18 +20 48 +52 49 +147 67 +200 148 +112 155 +102 192 +37 163 +5 28 +21 71 +169 5 +40 146 +129 78 +113 164 +44 105 +51 120 +140 160 +112 24 +139 160 +165 170 +172 156 +174 163 +95 168 +19 195 +23 115 +11 141 +32 147 +54 73 +177 179 +114 125 +21 98 +127 28 +74 62 +122 198 +12 189 +2 177 +126 148 +186 134 +33 104 +133 184 +52 73 +117 76 +151 88 +16 36 +33 21 +163 184 +111 130 +64 181 +109 171 +197 21 +179 156 +181 9 +191 182 +96 34 +196 18 +179 137 +188 138 +26 22 +81 139 +80 53 +86 77 +150 160 +18 33 +38 62 +52 109 +181 108 +105 85 +71 7 +13 1 +51 187 +169 38 +109 58 +16 63 +180 58 +167 71 +95 86 +1 19 +119 60 +78 182 +94 165 +113 1 +182 36 +183 142 +74 141 +89 188 +129 188 +116 144 +10 189 +67 152 +110 99 +152 176 +175 136 +48 180 +186 4 +147 138 +58 62 +169 22 +178 90 +35 13 +108 105 +27 123 +23 13 +47 77 +111 81 +180 194 +31 40 +31 142 +178 149 +114 39 +114 1 +149 175 +187 93 +12 57 +129 105 +34 184 +193 16 +155 111 +118 166 +133 114 +123 79 +178 34 +96 192 +123 176 +68 62 +60 171 +179 113 +98 11 +38 117 +84 131 +175 55 +43 14 +4 26 +60 189 +180 40 +59 197 +17 165 +102 96 +55 157 +72 166 +63 10 +175 105 +32 96 +160 197 +6 14 +49 28 +32 179 +93 98 +112 68 +125 162 +152 158 +44 91 +51 139 +16 44 +66 25 +66 151 +171 114 +120 10 +29 165 +7 38 +17 107 +26 60 +129 98 +169 96 +198 188 +165 131 +59 103 +175 42 +136 89 +78 87 +19 157 +67 17 +196 52 +46 37 +129 183 +19 71 +112 66 +36 155 +19 128 +103 63 +139 189 +122 86 +179 90 +13 199 +99 29 +110 6 +35 97 +24 48 +191 185 +116 3 +98 157 +129 61 +182 164 +118 129 +37 26 +121 63 +28 23 +67 143 +125 195 +194 24 +103 46 +36 7 +92 6 +23 27 +128 164 +49 120 +181 1 +161 46 +170 33 +110 63 +28 148 +29 190 +160 127 +141 71 +14 174 +139 94 +115 60 +186 61 +18 89 +6 71 +27 129 +157 127 +35 15 +57 39 +59 131 +94 101 +35 60 +75 197 +12 123 +49 58 +102 118 +80 9 +123 168 +151 87 +180 126 +113 191 +138 167 +195 55 +2 36 +136 107 +155 167 +92 175 +44 102 +1 145 +79 101 +178 167 +180 181 +96 24 +82 89 +79 15 +117 137 +88 200 +178 145 +67 178 +20 23 +51 34 +64 16 +64 102 +102 113 +103 193 +57 191 +25 38 +112 183 +18 121 +94 70 +197 123 +143 51 +107 8 +58 164 +161 7 +119 116 +151 89 +14 195 +89 153 +193 145 +125 169 +199 154 +27 148 +44 54 +133 199 +142 105 +148 42 +13 156 +39 46 +28 14 +188 41 +166 167 +62 167 +76 150 +198 197 +50 80 +10 187 +55 17 +20 152 +186 70 +138 159 +18 51 +1 27 +94 133 +76 16 +109 86 +75 127 +11 84 +129 196 +106 188 +136 30 +79 141 +86 145 +22 89 +57 84 +3 99 +85 118 +184 15 +161 168 +156 10 +138 168 +137 80 +194 87 +163 101 +100 155 +94 38 +164 69 +97 151 +71 180 +79 116 +160 106 +196 176 +100 188 +177 191 +37 89 +34 64 +98 151 +3 8 +196 95 +71 177 +153 36 +194 26 +29 66 +121 45 +51 103 +147 155 +159 144 +1 196 +197 34 +87 116 +148 84 +61 176 +36 174 +12 199 +23 154 +24 189 +40 178 +138 76 +129 28 +64 186 +186 146 +88 164 +120 157 +100 190 +27 32 +50 141 +68 75 +172 131 +178 173 +138 166 +178 160 +185 199 +113 190 +12 65 +89 166 +5 156 +8 140 +60 67 +73 3 +30 12 +188 163 +178 180 +30 170 +56 76 +176 66 +112 156 +146 62 +55 88 +31 121 +120 168 +165 70 +138 135 +53 65 +149 171 +37 70 +140 1 +156 122 +173 35 +86 19 +61 166 +21 129 +175 23 +116 86 +93 196 +124 111 +144 73 +195 82 +101 185 +133 129 +149 198 +17 60 +193 70 +146 4 +157 199 +72 168 +158 157 +113 122 +66 36 +129 171 +163 199 +98 200 +179 200 +31 196 +92 121 +31 157 +170 108 +146 80 +152 93 +199 39 +75 76 +33 106 +91 144 +98 188 +147 133 +180 87 +121 59 +20 170 +164 195 +157 15 +65 99 +168 40 +11 49 +81 127 +95 77 +146 93 +73 71 +64 72 +105 188 +95 58 +149 167 +192 75 +60 59 +16 179 +80 141 +195 35 +7 118 +175 127 +37 2 +30 111 +72 169 +26 192 +172 199 +116 163 +66 55 +168 186 +53 120 +24 100 +28 189 +108 159 +30 83 +193 37 +144 103 +193 88 +199 149 +23 31 +115 119 +200 30 +54 92 +157 164 +156 188 +125 59 +65 95 +18 4 +153 73 +113 130 +106 118 +86 107 +111 59 +144 118 +123 182 +189 139 +118 32 +157 58 +72 181 +39 137 +44 180 +102 149 +91 66 +62 192 +126 59 +32 188 +182 79 +191 117 +196 45 +152 5 +71 65 +31 43 +134 162 +178 65 +111 84 +196 13 +158 177 +8 80 +195 181 +196 165 +126 152 +51 1 +129 68 +187 62 +81 199 +164 177 +20 31 +61 67 +188 92 +47 108 +43 13 +78 171 +125 113 +98 117 +112 198 +181 173 +17 98 +45 129 +127 160 +81 164 +176 115 +78 35 +26 174 +199 152 +111 6 +98 183 +130 109 +167 87 +171 152 +72 198 +52 20 +143 104 +121 174 +189 117 +93 39 +55 22 +82 84 +127 61 +193 161 +114 181 +121 124 +169 167 +37 149 +104 15 +103 47 +42 41 +142 56 +138 11 +14 136 +158 25 +125 173 +185 154 +124 103 +135 196 +9 109 +136 150 +82 69 +170 10 +108 4 +194 18 +101 170 +83 82 +46 25 +163 190 +177 74 +185 96 +182 134 +164 45 +150 72 +2 193 +137 139 +109 134 +197 182 +73 32 +175 125 +191 88 +181 88 +38 156 +196 78 +42 77 +141 179 +65 158 +148 38 +117 11 +168 112 +34 178 +143 181 +25 154 +161 141 +179 20 +191 111 +48 162 +129 73 +63 139 +19 135 +161 6 +40 163 +116 38 +170 112 +138 68 +74 97 +66 56 +107 115 +73 18 +112 196 +117 47 +149 19 +189 54 +43 38 +19 9 +133 178 +180 104 +2 76 +89 23 +124 116 +103 138 +34 22 +50 161 +148 10 +162 144 +61 35 +85 76 +26 155 +134 82 +200 109 +180 168 +110 98 +70 107 +143 121 +8 190 +196 8 +132 45 +117 113 +97 198 +38 69 +16 94 +91 159 +28 139 +168 142 +74 185 +155 121 +147 145 +93 76 +8 13 +57 106 +146 7 +45 118 +47 96 +165 149 +85 125 +51 58 +95 156 +37 167 +111 1 +74 22 +61 141 +94 167 +155 139 +69 146 +182 49 +35 156 +121 19 +56 75 +119 65 +163 115 +103 28 +94 117 +100 91 +101 182 +72 94 +73 46 +115 95 +11 162 +5 170 +140 171 +197 105 +178 143 +133 25 +102 63 +92 98 +40 184 +198 92 +115 50 +139 55 +164 106 +155 182 +44 150 +60 17 +140 119 +102 58 +175 159 +101 171 +142 24 +38 86 +60 152 +177 132 +87 68 +16 154 +178 2 +29 135 +82 140 +90 109 +104 23 +199 47 +86 100 +65 164 +121 176 +76 171 +54 140 +62 127 +20 79 +15 164 +95 60 +24 18 +16 30 +66 54 +4 100 +31 38 +162 8 +187 3 +139 107 +173 139 +23 72 +155 35 +86 124 +22 191 +99 72 +66 98 +29 148 +71 22 +187 113 +135 193 +185 74 +199 164 +44 162 +143 187 +20 180 +90 36 +81 65 +79 10 +48 168 +15 96 +11 37 +175 54 +24 107 +42 59 +44 166 +136 113 +66 189 +24 15 +128 197 +67 5 +138 93 +115 86 +85 82 +36 1 +189 103 +28 45 +199 107 +82 83 +69 84 +74 64 +16 46 +9 155 +10 171 +55 155 +9 111 +12 86 +108 137 +67 114 +192 127 +17 41 +190 26 +50 68 +5 123 +14 66 +46 9 +194 77 +113 96 +144 95 +15 79 +56 96 +58 87 +160 114 +29 100 +18 123 +64 129 +49 189 +41 110 +168 183 +75 117 +158 179 +72 131 +141 7 +82 168 +91 178 +51 181 +59 108 +170 196 +12 196 +12 83 +101 34 +141 188 +29 13 +6 111 +187 18 +67 88 +127 53 +15 166 +45 150 +88 108 +125 30 +143 8 +126 37 +34 44 +101 89 +194 142 +59 163 +110 138 +136 49 +176 37 +42 132 +118 113 +32 58 +75 55 +104 112 +147 173 +94 160 +73 58 +160 30 +13 56 +148 168 +110 181 +26 175 +168 104 +79 169 +188 58 +5 199 +12 111 +103 148 +189 181 +78 166 +156 160 +26 70 +72 115 +79 37 +192 193 +93 8 +44 110 +176 13 +120 86 +91 17 +35 31 +37 122 +42 133 +17 49 +10 153 +167 44 +176 90 +89 43 +145 139 +57 11 +79 199 +102 31 +161 66 +2 131 +52 82 +87 146 +180 172 +108 22 +182 192 +47 49 +126 83 +182 5 +144 43 +146 106 +105 146 +18 149 +94 147 +14 26 +30 126 +195 52 +103 100 +26 110 +111 107 +162 161 +49 164 +90 104 +153 125 +25 195 +139 149 +152 36 +75 118 +52 120 +184 179 +76 112 +49 184 +137 83 +149 95 +167 93 +179 131 +68 188 +3 146 +31 193 +66 83 +125 131 +186 178 +8 36 +95 174 +193 131 +105 159 +143 73 +141 6 +38 139 +97 141 +133 38 +34 108 +179 74 +160 89 +38 78 +41 102 +77 134 +106 54 +140 52 +124 127 +130 23 +90 141 +73 195 +64 91 +143 1 +156 27 +84 93 +150 132 +178 98 +44 15 +48 24 +168 159 +96 56 +176 6 +164 23 +54 2 +103 156 +180 8 +56 104 +71 3 +199 153 +104 73 +189 23 +168 82 +132 19 +97 112 +108 123 +98 189 +114 7 +199 131 +176 22 +35 182 +86 143 +114 136 +59 24 +140 14 +198 128 +85 148 +32 185 +30 92 +47 27 +147 58 +58 67 +175 59 +174 177 +192 5 +146 68 +106 83 +69 88 +184 92 +62 46 +104 188 +135 173 +157 75 +66 167 +99 39 +113 102 +129 15 +94 187 +40 102 +183 99 +155 33 +93 199 +85 54 +96 156 +114 162 +179 178 +43 149 +137 125 +120 138 +81 135 +141 17 +91 52 +162 52 +153 138 +178 120 +88 37 +91 165 +163 145 +25 77 +190 180 +108 134 +45 6 +37 101 +59 32 +7 75 +133 117 +29 34 +105 139 +154 65 +122 54 +157 171 +177 150 +45 40 +72 47 +123 34 +29 81 +181 29 +178 131 +14 105 +134 41 +188 74 +109 9 +154 122 +123 20 +143 191 +84 85 +33 30 +10 167 +171 144 +65 3 +127 69 +94 68 +154 123 +148 151 +14 188 +190 148 +9 33 +150 187 +151 33 +72 165 +35 26 +28 161 +24 147 +31 187 +57 185 +16 85 +121 9 +135 171 +98 10 +9 179 +173 143 +141 82 +114 51 +58 146 +118 36 +16 13 +183 157 +93 161 +13 153 +85 166 +112 53 +26 191 +35 170 +147 11 +185 65 +78 22 +176 152 +144 66 +188 21 +171 2 +25 5 +139 159 +53 19 +78 104 +10 182 +93 162 +100 152 +66 8 +120 172 +41 114 +151 117 +107 3 +104 183 +61 51 +96 33 +155 82 +173 122 +46 176 +121 129 +38 178 +149 186 +115 5 +191 157 +25 102 +47 120 +160 187 +28 37 +194 14 +23 148 +172 136 +193 171 +186 166 +79 198 +188 97 +176 44 +169 74 +174 169 +155 34 +54 118 +171 132 +181 150 +122 117 +196 93 +174 184 +7 194 +181 53 +179 36 +33 197 +45 197 +97 43 +155 120 +76 133 +138 33 +64 195 +19 160 +48 35 +38 185 +64 68 +40 37 +115 132 +75 97 +33 74 +156 198 +54 189 +61 102 +138 125 +117 169 +196 149 +84 107 +81 94 +177 41 +60 14 +85 103 +101 10 +185 46 +200 108 +165 83 +186 124 +1 153 +51 35 +140 116 +128 156 +137 28 +157 21 +64 119 +129 109 +62 22 +99 123 +187 43 +5 139 +69 41 +17 195 +152 17 +128 80 +54 30 +69 198 +176 8 +138 105 +72 98 +21 132 +186 172 +90 51 +28 170 +26 98 +194 7 +167 98 +143 200 +67 136 +58 24 +10 66 +94 146 +146 186 +11 196 +192 154 +129 97 +48 22 +56 87 +12 130 +174 151 +141 58 +151 132 +62 189 +7 155 +94 192 +147 20 +64 158 +121 50 +139 125 +115 197 +192 130 +57 33 +102 171 +81 101 +67 23 +38 200 +161 10 +125 17 +183 74 +22 95 +171 116 +117 60 +51 99 +45 93 +27 124 +192 169 +108 96 +97 76 +100 193 +45 58 +87 109 +141 115 +149 67 +185 8 +16 102 +8 152 +54 187 +51 4 +47 165 +11 65 +148 25 +142 144 +128 103 +93 145 +173 127 +97 59 +108 100 +53 175 +99 178 +182 14 +57 9 +148 41 +196 110 +28 143 +48 104 +45 33 +183 112 +148 185 +17 199 +59 147 +191 66 +83 141 +115 56 +34 170 +148 3 +83 70 +37 111 +53 115 +51 171 +178 155 +16 69 +19 80 +137 153 +91 3 +47 141 +182 176 +17 1 +140 161 +85 65 +135 11 +130 177 +21 30 +158 186 +34 89 +97 146 +174 35 +164 156 +49 138 +176 38 +115 20 +196 147 +180 169 +167 109 +97 14 +191 114 +127 196 +94 115 +83 180 +127 158 +170 87 +180 200 +190 8 +47 75 +95 41 +146 43 +66 29 +92 148 +14 110 +187 53 +147 44 +151 159 +164 15 +66 46 +172 54 +54 136 +11 107 +178 82 +57 98 +49 116 +178 49 +52 183 +162 60 +69 9 +160 66 +86 29 +71 17 +51 64 +46 177 +69 47 +53 102 +62 15 +9 29 +48 94 +23 97 +164 35 +108 60 +164 178 +68 100 +149 106 +29 77 +177 127 +148 152 +5 145 +118 102 +98 153 +165 24 +140 106 +54 126 +43 114 +116 134 +82 169 +21 195 +149 50 +81 60 +7 112 +81 54 +30 36 +54 143 +40 187 +94 87 +9 144 +32 162 +189 135 +175 75 +53 123 +171 134 +20 3 +200 143 +110 132 +83 116 +159 158 +39 176 +130 134 +13 8 +116 94 +4 132 +143 34 +107 106 +189 80 +30 182 +186 104 +44 172 +189 44 +79 119 +133 152 +51 30 +29 188 +34 41 +80 157 +19 191 +10 79 +39 84 +133 19 +53 66 +109 193 +123 173 +99 58 +103 29 +182 26 +147 43 +54 130 +87 105 +195 76 +165 30 +74 102 +139 137 +146 156 +88 131 +135 183 +81 163 +199 179 +186 107 +32 39 +118 22 +118 127 +155 17 +147 33 +65 193 +90 129 +90 170 +171 91 +146 29 +83 26 +175 63 +165 77 +152 118 +199 115 +19 144 +117 184 +182 70 +59 187 +148 160 +57 123 +115 47 +5 92 +17 189 +58 157 +154 31 +182 16 +194 156 +137 17 +17 181 +112 45 +12 72 +193 121 +41 35 +12 106 +130 69 +65 10 +43 29 +145 20 +135 27 +186 73 +26 51 +41 71 +71 100 +103 92 +59 200 +96 171 +164 123 +182 82 +127 169 +39 63 +153 70 +112 22 +112 16 +144 31 +7 154 +153 119 +78 89 +154 164 +118 160 +45 189 +148 28 +56 90 +38 119 +4 74 +184 22 +91 190 +151 83 +137 63 +89 73 +22 51 +1 51 +24 66 +178 105 +75 33 +80 65 +127 141 +46 126 +115 41 +170 127 +127 93 +122 138 +2 70 +13 64 +32 192 +30 82 +9 122 +144 166 +44 70 +63 143 +63 134 +33 48 +122 126 +86 126 +156 146 +146 129 +14 9 +1 61 +105 8 +23 195 +10 165 +90 21 +102 125 +142 171 +154 153 +117 63 +110 15 +115 194 +14 172 +41 15 +24 64 +173 13 +89 194 +148 197 +15 66 +46 65 +79 55 +193 39 +63 110 +124 78 +74 80 +176 20 +164 29 +51 49 +61 40 +130 149 +121 143 +172 123 +166 107 +105 166 +38 190 +31 37 +35 122 +168 91 +172 51 +151 13 +98 41 +43 195 +50 85 +189 102 +170 101 +168 60 +119 61 +101 47 +183 54 +190 76 +5 35 +53 32 +96 147 +152 39 +46 60 +21 100 +163 133 +63 25 +19 153 +39 21 +53 178 +116 128 +67 174 +104 16 +190 11 +7 125 +5 78 +148 145 +128 130 +28 121 +40 118 +151 200 +23 81 +80 26 +174 58 +50 192 +189 42 +60 89 +124 75 +29 101 +72 138 +35 158 +53 56 +33 177 +159 26 +89 111 +6 83 +40 70 +74 146 +95 146 +157 151 +155 186 +153 97 +174 188 +81 172 +71 76 +4 129 +176 145 +164 125 +1 53 +200 185 +108 95 +147 144 +189 140 +121 96 +165 85 +11 102 +200 146 +96 90 +129 120 +90 137 +200 111 +80 124 +109 179 +86 200 +152 45 +104 118 +66 51 +20 97 +29 191 +7 43 +144 150 +6 130 +154 91 +90 59 +52 152 +132 134 +119 137 +182 91 +42 124 +25 162 +52 181 +40 95 +23 144 +141 148 +6 158 +12 193 +92 77 +160 183 +65 5 +75 102 +81 11 +125 99 +90 119 +78 143 +6 170 +193 182 +149 39 +30 88 +75 66 +194 37 +191 50 +6 112 +187 146 +94 128 +114 132 +183 198 +184 66 +142 168 +57 46 +21 31 +31 112 +32 41 +2 175 +120 196 +25 35 +125 199 +170 118 +116 139 +135 16 +58 186 +85 143 +69 10 +154 152 +132 21 +150 163 +101 140 +106 169 +93 29 +12 170 +56 190 +98 16 +177 63 +30 18 +43 161 +114 64 +100 145 +164 47 +36 31 +62 8 +83 19 +140 16 +116 14 +60 18 +160 174 +79 12 +196 62 +173 128 +9 74 +133 175 +106 3 +79 137 +199 100 +74 169 +171 196 +85 21 +32 103 +198 60 +47 125 +87 19 +139 67 +149 199 +59 190 +92 54 +6 66 +98 14 +48 155 +196 65 +91 72 +176 170 +145 57 +17 120 +81 26 +23 149 +73 31 +190 143 +136 37 +148 58 +179 39 +26 135 +50 79 +137 191 +61 4 +140 29 +23 11 +161 104 +24 97 +10 89 +63 164 +107 105 +112 189 +80 5 +10 125 +160 94 +21 177 +152 20 +160 162 +125 186 +83 140 +179 86 +195 133 +90 192 +125 194 +110 176 +153 145 +158 69 +150 175 +150 79 +56 125 +135 102 +164 2 +130 10 +108 56 +158 81 +152 192 +4 152 +86 178 +114 76 +25 52 +186 31 +154 30 +141 13 +5 91 +29 182 +148 108 +122 36 +121 135 +88 96 +70 133 +52 87 +174 197 +160 17 +155 131 +78 111 +183 78 +17 54 +50 101 +179 64 +120 144 +58 144 +81 154 +139 186 +158 122 +41 196 +196 168 +75 35 +17 97 +182 18 +61 63 +23 181 +147 137 +189 5 +15 160 +90 19 +5 3 +162 16 +22 110 +120 180 +77 93 +200 88 +8 118 +180 195 +92 56 +163 161 +74 19 +200 139 +193 134 +9 132 +155 173 +120 190 +36 71 +117 64 +125 66 +159 105 +119 174 +135 182 +160 137 +146 114 +40 198 +10 13 +93 190 +25 18 +140 57 +115 183 +151 29 +147 107 +139 79 +119 105 +182 127 +144 65 +173 24 +107 156 +26 52 +135 36 +95 17 +60 134 +86 16 +81 90 +4 98 +173 190 +104 136 +56 66 +36 2 +152 57 +109 13 +2 107 +53 171 +99 150 +102 100 +46 122 +95 80 +100 79 +99 91 +24 29 +128 61 +3 96 +12 162 +113 116 +50 61 +167 47 +47 90 +92 172 +153 42 +75 32 +136 16 +63 24 +167 96 +55 188 +16 175 +141 65 +36 12 +109 79 +125 76 +86 184 +188 103 +104 4 +198 42 +13 59 +40 112 +200 125 +121 3 +18 8 +125 135 +154 16 +188 31 +45 186 +188 34 +83 126 +133 87 +20 198 +195 68 +180 94 +74 105 +93 179 +117 119 +8 183 +23 84 +118 146 +63 46 +64 113 +81 170 +164 93 +161 115 +160 121 +15 82 +13 161 +33 137 +83 55 +21 29 +19 39 +198 129 +87 125 +121 146 +23 166 +41 161 +140 187 +164 79 +188 182 +44 52 +68 167 +55 26 +99 119 +123 189 +71 118 +17 119 +98 73 +177 70 +197 66 +63 57 +96 164 +173 121 +57 32 +153 44 +73 35 +52 155 +182 23 +45 127 +84 165 +14 98 +164 39 +76 144 +80 31 +139 53 +1 162 +172 29 +78 102 +31 158 +14 131 +81 16 +121 180 +182 78 +123 64 +75 74 +133 13 +64 71 +152 30 +191 199 +185 103 +94 156 +191 161 +54 104 +6 16 +151 120 +200 80 +170 24 +143 163 +87 27 +116 92 +12 13 +188 87 +139 98 +19 122 +118 15 +33 100 +162 3 +38 141 +77 28 +7 142 +168 36 +199 130 +89 137 +18 126 +27 132 +105 140 +70 85 +8 23 +196 117 +77 192 +16 7 +24 50 +127 200 +117 181 +164 51 +8 63 +190 101 +15 134 +56 15 +36 48 +125 44 +162 51 +98 13 +34 3 +188 123 +42 104 +141 51 +197 91 +142 130 +16 5 +79 168 +21 192 +51 136 +140 102 +159 19 +86 196 +135 184 +130 159 +150 165 +48 1 +144 158 +182 72 +193 40 +200 71 +90 164 +74 136 +33 79 +41 22 +57 5 +194 117 +145 116 +162 50 +76 176 +176 65 +106 195 +106 43 +128 7 +74 3 +90 92 +165 181 +179 72 +41 130 +112 18 +163 40 +17 64 +131 128 +169 18 +81 55 +123 24 +32 197 +197 49 +116 190 +28 18 +150 32 +182 103 +157 108 +151 118 +111 133 +54 196 +109 146 +200 128 +31 183 +101 80 +117 146 +94 14 +37 28 +46 196 +142 157 +100 78 +63 186 +33 128 +47 46 +90 160 +174 152 +110 147 +70 86 +55 32 +136 133 +7 49 +196 164 +83 79 +169 41 +87 129 +55 116 +200 51 +107 55 +199 72 +158 58 +120 56 +109 117 +39 31 +142 85 +95 103 +43 42 +83 124 +88 129 +183 128 +21 44 +157 186 +132 105 +172 46 +121 18 +137 12 +44 69 +116 53 +78 83 +114 6 +159 149 +71 70 +35 45 +32 50 +39 29 +96 32 +18 54 +176 163 +182 158 +70 164 +109 178 +16 165 +188 26 +43 122 +143 156 +113 18 +172 102 +116 59 +54 160 +198 50 +4 90 +10 60 +2 6 +8 155 +104 34 +4 179 +7 8 +98 130 +81 39 +125 185 +198 195 +147 101 +70 142 +96 142 +121 145 +130 5 +28 113 +35 105 +45 57 +14 118 +33 161 +123 51 +3 90 +185 120 +28 27 +187 51 +26 63 +164 53 +155 117 +182 25 +60 117 +160 186 +58 149 +89 126 +67 185 +194 198 +189 162 +164 173 +81 7 +1 46 +145 23 +5 22 +133 166 +175 60 +133 118 +64 200 +135 155 +135 114 +145 147 +194 72 +44 173 +164 140 +117 148 +140 75 +30 80 +181 81 +28 94 +45 74 +95 93 +163 136 +112 51 +143 170 +154 33 +19 66 +41 27 +20 147 +73 53 +48 123 +124 77 +112 192 +105 31 +92 149 +63 193 +82 132 +160 193 +194 113 +129 145 +140 28 +150 9 +54 195 +128 122 +8 66 +8 132 +198 186 +96 168 +169 28 +160 47 +21 130 +23 15 +79 34 +8 173 +39 57 +111 20 +196 123 +168 44 +196 92 +180 12 +18 112 +7 162 +60 137 +163 172 +69 39 +54 173 +5 85 +160 158 +27 59 +93 36 +146 30 +166 19 +138 182 +111 149 +99 61 +22 120 +16 52 +39 66 +4 107 +56 65 +145 87 +173 41 +108 61 +96 63 +71 133 +151 71 +110 102 +184 96 +21 131 +134 181 +96 13 +172 173 +195 197 +179 41 +156 196 +4 46 +61 27 +45 38 +54 121 +139 13 +65 86 +74 165 +147 139 +139 40 +27 163 +36 188 +45 160 +31 113 +145 144 +194 171 +151 60 +135 99 +1 173 +41 76 +173 79 +91 11 +103 107 +52 68 +72 60 +1 79 +140 51 +11 12 +109 3 +136 197 +59 188 +196 66 +9 24 +124 56 +137 133 +143 87 +1 6 +151 65 +150 4 +197 3 +180 167 +148 90 +192 76 +54 14 +146 55 +157 138 +51 140 +126 180 +14 125 +49 172 +18 118 +134 192 +82 2 +171 177 +30 40 +200 154 +32 132 +158 181 +44 160 +160 51 +190 182 +178 68 +190 53 +127 49 +50 29 +65 127 +1 120 +139 197 +50 163 +4 47 +99 25 +182 105 +148 109 +164 32 +93 18 +147 24 +57 92 +28 184 +94 118 +84 10 +188 35 +37 77 +164 109 +178 100 +34 65 +13 9 +188 49 +141 177 +119 88 +66 18 +193 7 +54 71 +194 68 +24 129 +35 191 +16 110 +189 41 +199 110 +198 75 +96 194 +48 192 +77 67 +81 91 +127 44 +151 6 +96 16 +134 34 +86 198 +194 110 +144 184 +144 53 +19 150 +133 32 +120 131 +46 20 +131 27 +43 143 +33 132 +137 56 +173 116 +48 37 +86 47 +135 7 +142 18 +141 60 +119 66 +95 63 +154 129 +171 160 +127 173 +66 184 +144 149 +192 186 +8 18 +94 1 +35 21 +20 47 +157 54 +68 44 +196 142 +126 187 +188 66 +116 95 +50 20 +102 110 +30 77 +167 28 +152 69 +89 149 +190 195 +138 131 +195 121 +157 27 +110 171 +141 119 +148 2 +52 194 +172 120 +90 145 +94 154 +166 55 +131 149 +5 54 +108 66 +186 30 +179 73 +114 142 +44 49 +34 98 +134 103 +133 148 +105 62 +166 134 +100 7 +2 99 +169 147 +199 196 +110 60 +110 70 +32 52 +184 183 +55 67 +97 38 +162 66 +49 39 +80 79 +63 125 +183 181 +44 95 +142 189 +117 147 +50 60 +26 67 +122 39 +30 67 +144 188 +116 179 +134 88 +53 72 +7 123 +87 103 +42 188 +2 197 +105 14 +43 18 +160 156 +26 81 +20 114 +48 199 +96 146 +166 141 +153 104 +162 20 +36 183 +155 199 +92 70 +73 5 +85 36 +171 110 +188 113 +138 95 +195 136 +81 89 +159 143 +55 165 +131 106 +188 6 +125 136 +134 122 +198 109 +105 200 +33 68 +148 20 +173 23 +61 84 +192 64 +148 85 +22 11 +107 4 +143 4 +94 145 +80 90 +62 42 +51 73 +184 121 +111 197 +141 49 +59 42 +24 178 +6 113 +26 187 +54 18 +146 71 +172 62 +107 36 +49 72 +168 5 +80 170 +25 107 +44 128 +187 145 +40 34 +134 73 +193 45 +164 84 +135 110 +52 76 +189 132 +161 64 +174 181 +96 178 +52 89 +9 32 +72 130 +106 139 +91 189 +121 105 +104 119 +13 24 +160 53 +93 33 +47 29 +102 6 +131 173 +85 57 +143 150 +172 128 +81 25 +187 170 +102 130 +168 23 +26 56 +194 48 +22 184 +11 87 +137 104 +159 47 +144 189 +130 101 +147 149 +188 88 +167 134 +107 70 +179 126 +148 13 +108 80 +4 168 +128 75 +149 157 +192 139 +115 187 +55 109 +47 32 +19 8 +13 83 +84 105 +53 124 +82 156 +1 76 +105 17 +158 20 +111 11 +105 176 +115 46 +42 194 +12 177 +62 190 +28 120 +38 80 +67 120 +27 75 +109 20 +45 106 +103 164 +21 96 +146 176 +44 4 +183 196 +175 86 +29 39 +91 137 +127 64 +78 11 +188 162 +83 20 +26 73 +156 12 +64 104 +173 68 +93 114 +70 128 +104 95 +70 191 +17 74 +40 174 +142 75 +16 19 +132 70 +105 129 +160 110 +12 174 +31 160 +10 200 +17 79 +159 1 +171 174 +7 65 +17 124 +138 31 +41 85 +61 144 +129 22 +149 29 +159 101 +20 21 +179 49 +43 82 +61 124 +179 134 +145 108 +178 94 +152 13 +59 66 +4 177 +129 29 +111 97 +136 155 +75 163 +130 80 +75 68 +41 75 +83 80 +98 138 +23 87 +105 7 +183 171 +38 104 +92 37 +169 126 +176 85 +158 16 +126 174 +92 80 +85 81 +13 168 +53 7 +99 189 +104 153 +145 78 +198 26 +153 19 +27 66 +137 1 +120 27 +3 26 +127 159 +33 58 +86 180 +41 120 +188 63 +132 78 +33 170 +36 128 +38 7 +65 61 +177 28 +133 109 +131 16 +13 42 +116 113 +102 103 +98 55 +10 34 +63 156 +33 109 +159 114 +71 163 +85 165 +145 4 +39 74 +185 67 +9 196 +118 198 +148 153 +111 35 +123 33 +47 93 +30 10 +10 80 +129 27 +48 50 +54 23 +143 177 +85 27 +90 105 +186 169 +159 173 +3 72 +197 159 +153 177 +118 2 +149 91 +112 161 +163 28 +26 141 +118 47 +83 160 +115 76 +27 168 +197 67 +27 174 +183 18 +103 72 +31 119 +92 154 +171 184 +140 88 +90 50 +187 88 +6 120 +172 73 +5 165 +121 57 +177 78 +171 176 +67 69 +153 90 +16 53 +161 185 +178 112 +191 101 +130 124 +2 30 +147 165 +29 183 +33 16 +163 30 +138 41 +10 152 +173 57 +9 118 +18 128 +122 136 +195 104 +200 162 +40 56 +140 25 +48 109 +11 61 +161 42 +42 197 +53 117 +53 88 +63 113 +112 153 +76 3 +49 107 +166 118 +111 168 +59 71 +193 169 +174 90 +114 165 +90 111 +128 18 +172 37 +154 27 +139 41 +112 17 +140 115 +98 75 +195 137 +7 101 +15 76 +174 50 +63 85 +43 49 +97 62 +119 101 +137 179 +1 184 +90 132 +23 41 +193 91 +162 79 +75 128 +31 147 +184 4 +37 190 +69 36 +129 181 +28 35 +1 126 +170 53 +118 144 +117 125 +38 61 +115 1 +37 138 +176 57 +2 120 +102 194 +79 13 +170 57 +39 101 +200 100 +134 157 +146 15 +191 127 +41 135 +32 130 +34 168 +127 55 +39 43 +34 124 +130 55 +109 125 +22 94 +144 52 +136 21 +15 64 +169 43 +108 158 +177 143 +21 81 +153 111 +15 36 +194 30 +31 65 +191 116 +127 153 +160 181 +76 111 +78 150 +190 36 +57 74 +79 85 +62 4 +70 33 +167 198 +193 89 +72 26 +182 24 +107 29 +24 38 +195 87 +15 142 +26 2 +25 34 +85 43 +156 114 +165 111 +105 93 +115 104 +95 152 +20 92 +73 181 +186 6 +105 173 +184 17 +173 157 +97 24 +156 145 +160 178 +137 94 +75 151 +127 121 +167 184 +23 49 +104 48 +200 75 +169 172 +127 163 +17 50 +92 27 +20 59 +51 55 +65 8 +135 67 +109 36 +61 108 +178 193 +168 164 +134 20 +56 72 +34 27 +128 47 +185 135 +145 157 +5 192 +57 14 +136 140 +177 192 +44 30 +107 141 +12 81 +54 34 +182 160 +157 188 +46 11 +81 142 +148 97 +179 29 +86 104 +128 34 +96 155 +197 145 +25 45 +49 192 +52 102 +167 51 +177 37 +32 49 +102 186 +139 140 +131 73 +50 31 +72 56 +131 40 +71 159 +176 67 +76 145 +30 107 +180 89 +137 93 +29 197 +11 4 +130 46 +3 164 +86 5 +63 50 +103 73 +42 54 +150 138 +122 9 +144 115 +58 172 +192 88 +187 172 +77 131 +103 68 +28 1 +6 60 +39 187 +64 57 +184 199 +62 84 +100 25 +43 25 +103 53 +12 44 +139 111 +113 150 +132 74 +177 43 +184 6 +28 116 +178 56 +182 174 +190 185 +87 133 +196 178 +157 6 +198 24 +156 195 +93 135 +45 145 +43 94 +145 66 +199 52 +114 147 +186 115 +131 42 +104 178 +179 117 +114 120 +172 5 +83 152 +85 197 +72 78 +158 182 +17 47 +62 44 +60 183 +112 41 +76 151 +76 66 +144 85 +98 88 +110 164 +65 120 +10 72 +159 27 +138 85 +106 165 +60 49 +144 128 +55 2 +133 54 +65 69 +136 162 +166 20 +19 182 +197 193 +37 164 +194 192 +187 36 +178 81 +152 195 +137 102 +138 47 +15 25 +131 158 +18 73 +68 157 +188 27 +29 176 +105 40 +175 147 +100 189 +194 188 +107 52 +66 70 +62 119 +88 193 +63 39 +92 192 +178 119 +175 151 +30 168 +134 75 +138 117 +144 63 +150 145 +152 157 +187 87 +49 35 +121 97 +66 158 +14 32 +127 7 +46 79 +129 131 +60 162 +192 155 +103 189 +183 22 +58 95 +12 50 +179 105 +5 81 +135 75 +149 185 +128 59 +165 94 +119 15 +75 107 +157 62 +148 40 +40 133 +140 101 +71 168 +36 13 +55 152 +42 19 +48 42 +57 80 +176 96 +129 162 +176 75 +187 157 +198 29 +152 166 +61 112 +184 170 +42 115 +141 95 +109 197 +157 35 +1 108 +154 116 +161 173 +11 180 +179 18 +29 102 +21 49 +118 124 +67 33 +175 169 +180 124 +17 25 +119 152 +83 195 +58 133 +118 50 +174 4 +128 107 +132 63 +124 120 +52 40 +112 34 +68 127 +19 178 +5 174 +45 144 +150 6 +66 23 +190 78 +12 75 +190 174 +98 56 +67 57 +131 21 +171 109 +113 6 +76 104 +158 192 +168 75 +142 138 +160 33 +120 126 +185 189 +122 107 +76 98 +180 174 +172 33 +83 34 +56 32 +127 112 +125 60 +57 25 +163 165 +67 176 +131 71 +92 132 +1 94 +21 197 +50 172 +38 194 +158 101 +138 1 +111 55 +191 72 +173 77 +64 66 +112 20 +74 197 +177 7 +124 93 +8 59 +112 61 +145 24 +148 77 +131 58 +192 116 +77 173 +21 191 +68 15 +93 9 +129 2 +100 10 +109 184 +19 1 +29 157 +179 124 +143 105 +15 117 +108 81 +64 50 +41 186 +147 127 +53 76 +53 9 +43 22 +93 103 +142 43 +47 38 +151 123 +103 120 +89 80 +108 101 +112 195 +84 149 +60 2 +186 193 +81 12 +34 134 +101 41 +31 49 +39 195 +51 38 +51 138 +153 181 +144 69 +94 110 +174 5 +27 128 +189 11 +15 14 +82 138 +168 76 +31 173 +52 164 +167 155 +165 75 +94 109 +182 42 +32 86 +71 105 +168 97 +192 128 +36 100 +54 114 +87 176 +61 195 +74 158 +29 65 +154 47 +84 148 +35 166 +141 197 +115 130 +128 137 +161 75 +25 136 +200 21 +19 44 +186 51 +32 173 +48 148 +28 156 +28 60 +118 188 +101 180 +170 22 +140 148 +52 149 +126 172 +67 58 +141 107 +99 153 +7 98 +182 119 +16 173 +53 167 +194 42 +146 131 +9 178 +156 91 +140 74 +60 74 +12 80 +54 37 +144 80 +61 196 +84 106 +103 182 +28 101 +17 37 +57 31 +22 173 +149 71 +50 24 +122 182 +58 17 +121 37 +147 64 +92 164 +132 163 +35 71 +139 15 +161 45 +14 30 +177 120 +152 88 +25 63 +193 17 +4 13 +156 19 +145 64 +51 72 +169 85 +169 52 +149 82 +196 160 +188 98 +10 176 +169 57 +158 131 +49 181 +199 28 +175 53 +82 104 +100 76 +48 129 +170 55 +36 37 +61 36 +73 10 +109 114 +34 179 +132 66 +71 82 +144 194 +2 82 +98 26 +137 160 +162 56 +45 190 +121 49 +168 123 +134 108 +78 60 +83 92 +177 174 +56 6 +85 142 +16 80 +32 94 +197 153 +78 66 +118 174 +42 195 +6 122 +91 157 +171 59 +63 97 +172 164 +129 60 +77 148 +47 34 +67 25 +115 112 +150 68 +151 193 +121 61 +82 187 +97 55 +182 155 +189 21 +12 110 +199 59 +110 153 +61 85 +70 83 +90 158 +143 58 +125 200 +74 52 +88 126 +62 97 +85 90 +99 45 +80 125 +143 6 +3 2 +43 79 +108 164 +77 114 +71 141 +1 43 +181 34 +108 103 +32 62 +48 90 +129 141 +194 79 +104 124 +9 20 +32 104 +1 14 +13 117 +54 87 +165 117 +125 191 +23 63 +115 45 +185 95 +161 119 +49 114 +173 87 +84 166 +148 75 +41 60 +152 1 +194 184 +10 166 +29 55 +85 152 +114 99 +11 82 +117 151 +155 70 +199 17 +60 196 +112 99 +157 121 +98 173 +9 40 +80 88 +93 38 +150 166 +110 111 +60 21 +96 122 +176 71 +98 182 +190 150 +94 197 +77 55 +196 72 +139 180 +42 75 +28 132 +88 175 +189 113 +146 78 +95 90 +153 65 +133 50 +11 193 +158 63 +163 87 +68 63 +157 181 +31 152 +157 39 +151 7 +29 44 +88 19 +46 41 +186 126 +121 107 +139 130 +9 110 +143 167 +124 98 +123 192 +167 177 +173 126 +86 113 +43 125 +95 142 +181 46 +98 4 +164 185 +200 17 +73 187 +128 69 +117 8 +55 80 +108 19 +18 13 +81 185 +136 143 +198 52 +4 195 +109 151 +78 25 +50 139 +44 5 +168 116 +119 167 +193 140 +31 190 +100 197 +12 94 +163 11 +114 139 +89 54 +126 46 +18 137 +55 16 +163 153 +140 36 +62 176 +138 137 +82 134 +183 154 +140 103 +169 84 +129 154 +88 12 +101 194 +155 138 +13 17 +34 69 +64 127 +79 186 +44 65 +24 99 +185 3 +113 112 +115 58 +71 166 +99 41 +87 18 +186 18 +29 75 +66 136 +12 89 +127 16 +129 33 +107 118 +132 198 +118 147 +62 134 +134 113 +141 173 +61 155 +169 107 +60 159 +27 98 +87 142 +51 16 +15 55 +20 17 +58 39 +166 12 +88 18 +21 110 +151 47 +50 116 +65 109 +101 145 +54 105 +109 5 +142 13 +99 57 +200 165 +24 163 +152 86 +22 58 +185 151 +32 176 +37 155 +115 61 +123 52 +169 4 +104 125 +50 145 +163 154 +94 153 +2 111 +3 97 +86 119 +197 17 +49 57 +112 179 +97 74 +41 151 +82 66 +156 65 +143 188 +28 145 +145 195 +181 118 +122 6 +11 79 +74 4 +21 79 +184 125 +168 52 +65 68 +69 78 +166 98 +94 166 +200 152 +34 157 +49 52 +82 182 +26 142 +179 152 +164 105 +172 52 +152 49 +127 38 +65 84 +112 81 +128 125 +184 87 +176 173 +56 88 +169 132 +26 90 +177 50 +191 15 +176 117 +22 103 +41 20 +24 139 +76 101 +186 150 +120 141 +95 158 +157 44 +169 93 +45 39 +66 78 +47 15 +80 182 +44 194 +49 118 +127 62 +192 150 +41 62 +186 98 +61 171 +174 144 +76 175 +72 58 +23 118 +111 166 +171 168 +150 66 +159 148 +160 138 +70 184 +39 8 +81 187 +190 106 +196 172 +44 106 +130 11 +112 165 +59 109 +85 69 +63 107 +18 113 +137 43 +98 102 +178 58 +132 84 +49 195 +3 197 +14 43 +69 123 +68 67 +61 145 +108 115 +188 17 +177 13 +60 13 +156 141 +24 181 +177 90 +45 169 +47 198 +190 139 +183 6 +134 139 +115 151 +195 156 +62 28 +120 6 +26 94 +31 42 +180 25 +161 112 +139 7 +112 28 +31 175 +132 16 +144 192 +183 27 +196 27 +40 64 +156 147 +128 6 +79 71 +168 15 +186 25 +82 92 +174 193 +99 107 +176 139 +178 107 +62 80 +121 182 +168 12 +143 166 +95 113 +101 28 +50 10 +133 9 +197 100 +77 139 +122 97 +175 28 +12 63 +61 125 +121 104 +14 140 +21 67 +189 25 +16 119 +94 41 +95 144 +184 46 +145 9 +179 101 +91 90 +182 169 +122 133 +198 85 +174 173 +194 174 +46 134 +136 79 +112 163 +123 124 +17 173 +42 90 +26 176 +62 49 +124 195 +157 123 +155 47 +98 169 +200 18 +100 172 +82 45 +95 71 +105 64 +38 120 +177 156 +30 43 +171 178 +85 104 +138 130 +140 21 +72 167 +34 94 +45 86 +108 184 +103 183 +125 155 +71 108 +92 22 +6 175 +59 106 +38 72 +151 97 +41 105 +130 113 +75 158 +107 166 +115 146 +176 40 +86 194 +120 55 +36 147 +165 51 +117 77 +129 117 +116 177 +13 175 +177 55 +105 70 +64 177 +75 57 +156 39 +111 152 +171 119 +44 118 +167 18 +66 193 +106 35 +51 28 +104 96 +2 104 +184 146 +60 26 +95 25 +160 151 +145 84 +30 44 +71 61 +27 88 +39 139 +112 140 +12 117 +102 27 +102 46 +15 148 +179 55 +163 186 +188 176 +1 119 +49 104 +85 97 +78 3 +107 65 +36 115 +148 9 +18 98 +60 135 +141 155 +16 184 +36 76 +154 40 +59 93 +42 170 +49 130 +10 55 +140 130 +139 112 +109 161 +68 200 +94 18 +59 92 +7 36 +155 181 +186 137 +68 177 +143 198 +29 146 +68 70 +162 5 +175 22 +54 79 +150 59 +141 163 +97 138 +27 3 +78 8 +136 41 +127 5 +184 33 +124 171 +9 10 +170 29 +6 124 +57 47 +104 47 +168 200 +200 35 +44 149 +76 132 +189 29 +191 36 +44 175 +136 88 +148 46 +111 185 +185 58 +18 96 +87 169 +174 146 +3 68 +66 12 +154 113 +36 8 +21 119 +180 76 +16 172 +177 195 +140 46 +141 185 +36 55 +17 164 +11 58 +115 134 +176 73 +138 66 +149 83 +179 195 +87 84 +169 162 +150 127 +78 138 +64 79 +173 48 +31 133 +121 74 +78 95 +119 81 +101 99 +151 116 +85 158 +55 38 +21 38 +92 185 +35 3 +29 121 +42 63 +181 14 +9 4 +149 145 +129 4 +82 109 +161 82 +98 47 +20 119 +34 128 +35 118 +12 21 +130 162 +25 59 +119 192 +65 155 +110 105 +18 197 +94 20 +153 143 +78 129 +110 114 +128 174 +159 91 +182 19 +153 25 +177 53 +79 98 +18 27 +198 68 +185 80 +5 44 +145 183 +126 168 +162 110 +123 92 +31 6 +54 165 +166 171 +177 2 +84 198 +58 175 +58 92 +121 157 +6 59 +151 126 +3 47 +70 69 +26 43 +111 167 +112 147 +103 192 +42 65 +136 183 +11 73 +13 5 +55 36 +161 23 +162 187 +107 193 +94 174 +72 86 +18 63 +156 22 +13 189 +187 57 +18 59 +179 23 +196 105 +119 71 +164 17 +46 66 +199 183 +167 45 +98 181 +1 164 +73 167 +188 195 +24 36 +40 161 +160 177 +124 200 +113 43 +98 91 +70 7 +89 157 +36 22 +88 1 +126 31 +150 111 +138 177 +135 15 +104 110 +62 164 +125 5 +94 5 +118 88 +169 157 +68 24 +100 116 +112 14 +191 175 +113 20 +24 134 +42 17 +68 2 +97 135 +103 200 +28 109 +165 58 +192 58 +66 28 +87 21 +163 70 +136 199 +52 195 +100 154 +85 92 +177 65 +107 11 +139 185 +3 110 +19 101 +112 19 +196 177 +200 93 +58 91 +51 137 +198 5 +100 75 +113 158 +127 138 +172 119 +123 177 +4 187 +6 5 +123 120 +44 163 +75 83 +190 45 +189 86 +171 7 +196 60 +102 77 +138 72 +144 40 +137 171 +94 48 +184 47 +188 16 +70 68 +137 97 +154 105 +199 30 +137 8 +71 23 +187 22 +91 155 +15 62 +152 32 +117 134 +43 163 +24 106 +87 119 +136 154 +185 143 +102 157 +48 67 +153 106 +23 169 +56 157 +87 47 +42 51 +153 9 +163 43 +138 23 +73 182 +146 95 +136 80 +87 172 +74 126 +116 171 +53 155 +122 74 +185 116 +53 196 +141 174 +119 104 +92 91 +150 167 +98 99 +82 62 +133 82 +65 12 +169 182 +137 121 +161 174 +106 30 +94 80 +140 188 +126 183 +146 23 +30 4 +157 176 +20 94 +133 154 +107 198 +133 145 +43 135 +41 7 +152 26 +11 53 +196 195 +10 117 +34 183 +84 160 +81 21 +73 9 +193 112 +59 120 +149 121 +78 118 +193 64 +154 17 +106 86 +18 177 +174 109 +58 147 +195 178 +127 71 +60 156 +124 54 +93 152 +154 182 +19 130 +135 88 +44 26 +185 136 +90 1 +188 77 +174 51 +62 115 +153 66 +160 97 +156 192 +46 83 +106 131 +31 177 +152 144 +117 171 +41 152 +121 11 +111 195 +40 132 +96 103 +58 103 +113 200 +109 147 +131 2 +26 120 +50 26 +145 43 +94 102 +97 176 +83 117 +10 112 +29 76 +196 15 +96 148 +123 143 +6 93 +90 140 +57 140 +37 184 +162 155 +106 74 +119 87 +150 84 +188 191 +97 101 +88 27 +199 127 +71 60 +104 17 +136 169 +108 126 +124 182 +84 138 +141 19 +74 55 +137 57 +118 82 +130 86 +186 168 +104 78 +115 101 +13 170 +193 109 +130 100 +119 35 +32 85 +50 76 +1 190 +30 3 +141 73 +96 162 +18 69 +180 197 +2 158 +112 39 +143 52 +196 179 +152 79 +13 53 +53 150 +179 3 +160 112 +4 61 +78 197 +94 186 +125 196 +66 43 +136 23 +132 111 +151 30 +9 17 +151 138 +161 187 +198 27 +78 57 +180 196 +88 150 +165 33 +54 188 +84 162 +88 98 +110 4 +152 41 +126 179 +87 81 +120 37 +134 40 +103 20 +16 57 +2 57 +87 9 +45 90 +82 41 +12 141 +109 154 +158 111 +44 158 +45 115 +44 109 +175 109 +76 92 +57 105 +100 92 +156 104 +188 112 +37 137 +94 96 +136 100 +1 107 +7 57 +58 167 +64 159 +51 114 +69 1 +16 186 +173 160 +37 200 +58 42 +67 98 +186 188 +104 79 +82 192 +80 70 +147 163 +47 100 +93 120 +197 94 +101 147 +196 148 +40 10 +125 37 +36 117 +35 193 +84 152 +172 7 +12 113 +11 165 +26 172 +59 137 +2 98 +37 86 +154 120 +9 53 +55 12 +143 133 +165 90 +43 85 +77 169 +80 87 +107 59 +17 177 +139 10 +19 17 +134 178 +165 195 +189 18 +8 16 +197 111 +190 138 +146 82 +73 141 +13 176 +144 133 +5 153 +98 43 +79 50 +121 122 +133 131 +63 170 +151 128 +160 135 +106 31 +93 118 +160 104 +135 115 +71 55 +22 157 +107 120 +107 43 +146 84 +194 98 +139 56 +27 136 +160 40 +98 84 +136 116 +179 100 +139 188 +158 44 +127 82 +15 22 +47 50 +7 20 +55 140 +108 50 +160 128 +200 77 +112 98 +113 5 +17 67 +132 131 +38 157 +164 72 +54 157 +82 122 +173 95 +83 188 +61 143 +200 124 +146 150 +88 93 +191 14 +62 36 +29 49 +23 130 +80 120 +185 109 +90 96 +197 117 +143 55 +122 46 +85 186 +74 145 +44 89 +133 192 +153 166 +95 132 +144 196 +78 193 +195 67 +87 73 +164 104 +35 174 +149 20 +89 68 +133 100 +158 78 +96 45 +112 157 +157 19 +105 187 +78 20 +134 8 +123 15 +150 139 +22 92 +100 14 +110 173 +64 34 +98 158 +93 44 +127 124 +103 16 +43 193 +161 183 +189 87 +188 81 +39 181 +161 32 +60 109 +162 47 +192 90 +127 181 +125 141 +173 18 +74 36 +88 81 +121 56 +18 133 +63 5 +82 111 +28 87 +111 36 +187 41 +156 100 +107 32 +17 77 +159 176 +163 84 +160 58 +61 16 +149 46 +190 196 +86 36 +53 151 +191 195 +22 106 +15 6 +108 195 +7 44 +50 11 +54 159 +195 151 +165 106 +3 92 +160 133 +188 127 +115 103 +36 119 +29 90 +125 102 +99 131 +17 95 +76 182 +84 178 +22 195 +197 177 +92 66 +1 198 +74 173 +161 151 +100 74 +15 111 +132 51 +68 178 +152 111 +144 38 +22 72 +56 86 +42 136 +131 132 +130 63 +57 49 +118 111 +117 66 +39 178 +65 147 +20 188 +56 197 +14 104 +66 6 +90 98 +32 151 +34 106 +33 167 +128 186 +20 142 +41 90 +105 2 +46 148 +76 116 +167 12 +130 72 +32 29 +199 191 +78 190 +118 191 +185 93 +43 86 +64 80 +109 183 +171 186 +180 116 +142 117 +193 10 +187 29 +71 98 +66 119 +104 43 +111 142 +30 87 +13 84 +146 181 +162 183 +124 194 +120 179 +139 163 +84 194 +101 190 +43 194 +4 22 +2 125 +84 186 +65 114 +20 105 +59 139 +50 28 +188 118 +173 72 +37 59 +15 45 +122 109 +82 33 +10 124 +177 103 +97 12 +11 189 +94 52 +40 53 +23 88 +197 16 +69 21 +181 86 +148 61 +107 71 +75 108 +171 12 +118 135 +85 116 +80 30 +142 167 +195 107 +180 50 +58 126 +99 2 +1 25 +158 77 +140 5 +102 67 +144 146 +53 153 +119 170 +154 26 +100 111 +118 56 +34 14 +185 132 +127 42 +8 14 +6 163 +194 167 +163 157 +53 157 +171 165 +39 117 +76 54 +119 68 +39 175 +11 3 +165 43 +182 175 +103 144 +73 176 +101 163 +166 38 +40 68 +194 63 +191 60 +3 84 +2 14 +64 17 +16 161 +53 111 +21 70 +135 35 +41 191 +7 77 +27 103 +135 72 +152 54 +156 107 +158 73 +123 151 +181 200 +90 10 +117 12 +18 21 +33 66 +51 142 +65 60 +176 82 +94 16 +118 100 +30 121 +102 52 +2 102 +95 106 +185 29 +53 141 +151 57 +7 159 +15 23 +144 45 +113 46 +86 188 +31 29 +39 61 +189 196 +103 194 +145 159 +100 112 +91 123 +111 196 +115 54 +163 178 +28 190 +58 195 +78 29 +86 116 +145 65 +126 142 +9 52 +12 181 +45 137 +198 112 +50 45 +88 32 +178 48 +185 176 +132 79 +189 158 +76 14 +29 150 +104 158 +1 33 +188 101 +168 121 +51 166 +27 97 +67 179 +43 191 +184 160 +70 47 +25 7 +105 122 +53 41 +186 123 +160 180 +114 163 +21 137 +38 39 +69 16 +105 192 +76 12 +97 113 +42 53 +15 92 +163 155 +170 121 +192 43 +160 81 +66 53 +1 125 +157 118 +154 76 +52 198 +26 137 +124 125 +72 10 +167 68 +185 142 +16 97 +85 120 +69 104 +91 67 +94 161 +47 17 +157 107 +108 87 +190 109 +116 124 +122 123 +67 63 +21 183 +62 145 +100 24 +39 40 +150 129 +186 76 +159 132 +128 71 +66 102 +55 158 +90 191 +153 40 +77 187 +24 149 +21 160 +98 101 +110 41 +172 57 +143 31 +176 198 +118 71 +60 35 +74 183 +137 154 +76 79 +162 156 +75 42 +39 172 +43 155 +166 85 +104 20 +34 199 +52 27 +49 38 +195 144 +32 46 +72 18 +151 75 +4 190 +120 87 +20 192 +27 104 +37 7 +189 173 +70 148 +13 77 +28 55 +62 118 +144 108 +113 39 +134 115 +89 53 +18 192 +124 107 +23 122 +136 134 +21 185 +194 83 +82 50 +164 67 +5 112 +136 176 +4 113 +86 64 +83 200 +87 2 +48 137 +61 32 +114 176 +76 64 +72 122 +31 21 +35 198 +160 46 +49 60 +114 161 +158 107 +146 6 +182 189 +50 25 +8 42 +181 60 +96 77 +174 125 +19 2 +134 116 +55 134 +185 82 +139 17 +186 64 +6 51 +179 151 +89 107 +173 193 +19 16 +126 27 +35 175 +173 16 +180 32 +172 32 +171 90 +135 112 +5 200 +55 62 +108 48 +56 135 +80 72 +115 89 +82 46 +51 29 +136 42 +58 173 +11 17 +175 148 +15 171 +83 167 +183 84 +193 162 +65 34 +198 144 +59 138 +191 52 +110 119 +23 89 +192 143 +75 116 +76 35 +61 158 +56 105 +55 79 +95 81 +187 25 +40 200 +70 8 +79 82 +10 97 +66 68 +27 119 +160 126 +96 134 +77 103 +155 67 +120 70 +10 47 +61 128 +171 107 +96 17 +44 193 +52 166 +45 34 +111 112 +153 95 +30 76 +199 65 +131 60 +127 106 +92 72 +170 77 +140 197 +22 148 +150 107 +35 82 +71 52 +147 162 +125 106 +123 9 +64 20 +182 53 +20 148 +168 184 +41 136 +94 26 +103 150 +157 148 +19 40 +119 164 +188 140 +115 159 +71 106 +19 41 +159 188 +169 193 +74 24 +145 109 +136 141 +67 145 +123 191 +197 39 +63 172 +105 33 +110 186 +20 189 +149 34 +104 168 +20 176 +114 101 +63 142 +130 8 +167 187 +138 57 +6 129 +160 167 +24 37 +127 25 +113 157 +72 85 +176 149 +21 163 +129 114 +32 126 +100 57 +132 46 +6 180 +117 105 +155 8 +6 70 +76 34 +131 72 +117 42 +46 155 +86 46 +8 134 +164 175 +198 14 +96 128 +142 153 +44 81 +113 80 +159 175 +147 72 +21 147 +8 28 +101 42 +62 3 +199 159 +94 151 +96 117 +100 65 +38 147 +110 26 +38 25 +198 130 +119 185 +117 153 +125 90 +139 14 +176 177 +12 17 +176 156 +51 80 +59 18 +151 154 +187 185 +39 93 +124 69 +24 61 +28 179 +83 1 +152 129 +78 115 +57 17 +64 160 +37 16 +144 136 +56 82 +62 129 +43 51 +73 27 +43 73 +76 28 +176 18 +148 80 +199 34 +7 9 +39 127 +17 133 +43 63 +98 80 +121 35 +139 200 +153 190 +106 94 +151 147 +28 64 +191 167 +113 171 +92 122 +112 82 +44 140 +133 71 +140 24 +138 195 +114 9 +169 77 +112 29 +151 121 +23 163 +7 152 +179 13 +153 50 +195 44 +168 38 +115 154 +3 94 +51 131 +66 150 +132 197 +191 25 +62 57 +1 188 +93 125 +154 95 +117 111 +113 199 +182 62 +118 94 +160 103 +63 59 +182 112 +101 92 +47 159 +115 94 +168 50 +44 96 +3 141 +30 155 +55 183 +99 59 +8 164 +20 122 +185 39 +54 59 +46 86 +41 98 +13 22 +47 178 +184 64 +183 34 +65 38 +58 123 +184 67 +74 191 +157 22 +158 61 +126 78 +114 87 +10 155 +96 126 +125 133 +127 11 +3 42 +169 199 +84 12 +146 75 +26 92 +127 79 +179 147 +152 150 +197 102 +52 26 +110 124 +123 22 +152 103 +45 122 +152 12 +68 129 +56 48 +96 110 +88 125 +115 191 +175 80 +67 155 +159 14 +15 53 +101 129 +68 139 +149 195 +37 29 +24 39 +9 172 +112 59 +160 129 +6 181 +120 169 +29 111 +53 10 +103 15 +197 81 +66 10 +100 105 +128 168 +102 140 +80 169 +5 109 +61 83 +143 79 +20 160 +72 35 +82 64 +35 139 +2 29 +82 13 +153 186 +157 94 +102 99 +186 108 +53 163 +136 185 +58 13 +155 200 +89 146 +28 71 +125 112 +68 76 +125 149 +57 173 +130 135 +125 79 +159 118 +167 156 +126 167 +198 84 +143 35 +130 123 +22 132 +162 82 +177 104 +2 80 +191 176 +106 190 +196 69 +159 141 +175 62 +9 95 +185 23 +76 169 +12 66 +125 183 +57 109 +195 21 +108 173 +96 138 +171 62 +181 167 +188 180 +120 48 +151 96 +143 60 +119 33 +123 199 +127 136 +37 40 +67 128 +72 55 +110 109 +119 100 +5 108 +148 15 +194 168 +47 4 +98 121 +77 123 +36 23 +137 59 +79 179 +21 26 +156 61 +119 22 +75 40 +99 46 +83 154 +173 62 +167 81 +50 92 +105 193 +27 19 +42 6 +50 64 +18 196 +115 165 +39 79 +164 95 +11 112 +188 149 +188 139 +34 21 +50 121 +152 177 +186 49 +114 150 +100 20 +113 162 +19 125 +125 94 +41 12 +137 48 +14 44 +31 172 +78 189 +157 104 +95 55 +93 48 +161 96 +172 11 +1 12 +94 88 +21 138 +24 193 +39 10 +53 96 +69 25 +188 198 +169 1 +92 136 +28 100 +97 188 +71 114 +31 60 +25 41 +111 95 +193 194 +10 199 +129 142 +151 131 +129 116 +151 39 +26 143 +76 153 +185 115 +196 146 +127 190 +145 99 +13 123 +98 163 +24 200 +192 72 +182 45 +74 63 +89 159 +178 43 +134 117 +104 121 +17 191 +51 197 +198 176 +84 26 +90 97 +9 76 +57 60 +152 109 +186 106 +141 9 +69 166 +58 83 +139 175 +34 15 +193 22 +114 35 +123 58 +130 105 +90 89 +185 110 +70 18 +76 146 +42 127 +112 129 +70 34 +130 9 +126 177 +171 155 +181 101 +124 155 +7 149 +21 140 +120 184 +101 62 +75 131 +57 19 +25 12 +200 134 +73 102 +36 98 +179 107 +175 188 +89 77 +153 22 +178 87 +5 29 +72 11 +79 95 +23 185 +150 157 +171 200 +53 87 +90 7 +189 36 +175 61 +33 142 +130 197 +12 134 +114 90 +110 16 +167 31 +78 199 +62 133 +68 71 +95 136 +34 18 +95 164 +38 3 +37 49 +184 113 +2 49 +49 54 +48 65 +95 166 +21 82 +111 75 +104 68 +200 54 +95 171 +75 188 +33 145 +45 199 +40 105 +55 199 +23 107 +183 47 +71 178 +77 35 +76 55 +54 8 +162 132 +155 197 +111 191 +181 125 +28 81 +120 112 +57 146 +158 150 +68 92 +118 120 +109 106 +184 77 +53 16 +106 171 +72 152 +122 167 +94 126 +122 154 +153 140 +107 113 +147 35 +21 124 +182 106 +134 35 +155 108 +129 119 +73 113 +87 17 +93 2 +13 139 +182 6 +95 59 +144 13 +195 126 +134 172 +5 175 +192 46 +183 131 +45 15 +136 120 +124 151 +73 66 +110 188 +92 195 +79 9 +37 73 +161 180 +34 90 +134 99 +34 79 +133 94 +27 139 +43 10 +152 94 +28 187 +172 159 +116 118 +7 198 +30 23 +141 124 +85 100 +109 158 +53 30 +93 106 +162 142 +115 181 +57 104 +108 20 +152 153 +190 81 +11 59 +1 84 +186 50 +34 137 +116 123 +51 19 +26 173 +112 144 +197 79 +29 9 +44 2 +100 114 +200 55 +132 36 +4 157 +97 50 +11 42 +156 89 +4 166 +130 14 +35 188 +21 198 +93 87 +19 34 +147 189 +162 186 +105 96 +83 194 +151 72 +146 52 +112 138 +47 22 +56 101 +172 30 +101 7 +186 75 +120 60 +9 194 +115 84 +47 116 +26 177 +23 103 +97 105 +105 168 +86 15 +184 155 +37 34 +156 42 +163 191 +114 37 +9 30 +12 96 +153 158 +58 163 +28 137 +9 108 +30 129 +12 169 +58 115 +99 5 +116 174 +161 113 +42 125 +186 19 +179 76 +84 22 +112 94 +144 123 +194 196 +49 7 +94 162 +148 92 +140 99 +179 96 +80 168 +94 158 +128 112 +172 45 +144 164 +112 58 +145 29 +140 108 +161 33 +108 14 +110 144 +189 110 +105 16 +192 136 +55 6 +8 55 +137 38 +77 33 +182 114 +97 66 +194 76 +151 113 +141 96 +31 164 +93 62 +195 143 +124 41 +198 36 +14 68 +138 136 +2 47 +80 114 +9 81 +180 189 +126 159 +101 58 +130 158 +128 152 +100 93 +145 132 +169 106 +127 72 +81 195 +149 108 +136 161 +196 4 +157 145 +125 171 +90 5 +9 43 +179 174 +163 38 +117 87 +72 193 +181 82 +143 63 +101 121 +21 57 +132 106 +106 92 +200 66 +52 79 +62 103 +186 13 +147 128 +37 191 +94 199 +172 117 +167 35 +184 48 +140 169 +42 61 +48 87 +5 9 +50 154 +41 99 +72 197 +156 126 +93 156 +153 110 +66 94 +85 109 +60 5 +117 67 +185 52 +79 35 +167 172 +52 75 +84 185 +197 188 +92 58 +155 185 +104 37 +71 53 +139 126 +97 119 +106 69 +172 198 +154 144 +63 2 +126 79 +147 178 +4 64 +42 151 +193 99 +37 10 +111 17 +28 6 +100 77 +104 192 +86 12 +13 23 +167 105 +69 93 +200 173 +119 190 +155 106 +72 68 +93 115 +91 162 +130 79 +101 120 +156 102 +111 92 +63 84 +189 108 +108 128 +162 122 +116 164 +45 84 +6 11 +29 125 +132 137 +67 165 +68 175 +141 20 +18 84 +27 121 +157 87 +154 191 +24 166 +189 76 +176 24 +198 162 +48 45 +77 62 +5 121 +195 79 +167 26 +132 91 +184 31 +148 49 +6 2 +66 3 +175 186 +96 11 +29 113 +16 162 +95 42 +95 4 +65 181 +154 142 +76 170 +44 25 +196 112 +11 50 +75 11 +195 102 +166 113 +7 172 +66 161 +140 167 +110 142 +51 176 +141 25 +128 179 +116 147 +34 67 +41 155 +176 121 +200 192 +59 118 +12 9 +173 96 +56 198 +97 122 +15 89 +93 4 +199 55 +190 103 +131 144 +103 118 +50 103 +194 102 +138 24 +141 63 +15 29 +156 184 +65 150 +117 182 +100 68 +9 138 +11 22 +133 27 +189 109 +187 20 +122 195 +189 159 +27 14 +170 45 +184 10 +58 191 +29 18 +41 122 +74 8 +115 51 +78 12 +199 98 +72 44 +6 178 +59 46 +83 106 +117 28 +40 38 +197 38 +5 105 +61 114 +95 52 +176 111 +85 174 +41 123 +189 145 +63 37 +150 25 +80 150 +164 136 +192 14 +18 46 +141 3 +99 193 +29 116 +166 142 +185 59 +153 162 +70 104 +138 175 +134 111 +141 57 +60 80 +92 29 +106 81 +164 189 +69 181 +195 59 +60 50 +178 162 +198 148 +108 170 +186 114 +43 148 +107 62 +146 53 +65 83 +167 84 +64 188 +67 102 +45 76 +22 100 +64 162 +189 73 +199 23 +155 132 +168 24 +189 107 +161 162 +57 124 +3 177 +1 80 +141 14 +33 61 +8 3 +97 120 +60 36 +110 32 +63 95 +46 191 +127 96 +110 88 +89 177 +129 193 +65 18 +55 53 +9 173 +79 80 +75 21 +168 10 +116 93 +174 123 +8 68 +114 86 +163 54 +142 60 +197 92 +89 175 +93 191 +60 179 +37 31 +107 9 +183 158 +51 85 +166 154 +89 21 +181 67 +54 129 +125 145 +167 146 +86 97 +193 27 +127 119 +108 52 +14 119 +42 81 +35 10 +186 21 +25 151 +6 92 +171 53 +188 54 +33 189 +62 124 +121 175 +112 199 +122 84 +102 43 +129 93 +139 151 +108 162 +174 41 +36 102 +29 152 +100 86 +181 62 +89 189 +80 96 +1 72 +56 13 +157 41 +99 173 +123 45 +158 166 +97 63 +155 49 +129 134 +76 45 +87 65 +51 84 +130 136 +83 69 +145 198 +24 103 +131 57 +71 136 +155 187 +63 150 +62 198 +136 85 +187 120 +4 33 +85 141 +200 122 +78 148 +112 21 +179 87 +122 88 +137 115 +142 34 +97 13 +20 32 +154 15 +85 89 +180 57 +199 174 +126 144 +108 179 +133 159 +39 134 +181 56 +109 80 +118 57 +28 99 +86 32 +29 17 +114 41 +26 46 +98 134 +92 5 +158 106 +37 147 +192 49 +99 133 +41 17 +124 20 +170 128 +149 52 +102 127 +149 75 +44 171 +39 32 +152 16 +159 131 +4 73 +146 5 +89 72 +107 35 +183 150 +54 113 +31 148 +39 65 +151 26 +157 178 +170 18 +172 35 +34 149 +7 132 +89 128 +49 51 +41 147 +61 20 +42 146 +5 197 +39 162 +188 85 +14 179 +200 193 +189 136 +41 26 +69 8 +187 59 +115 180 +104 180 +154 124 +160 96 +97 121 +173 170 +97 140 +59 81 +11 183 +95 195 +25 54 +105 178 +199 68 +197 162 +18 160 +24 28 +56 182 +96 80 +89 117 +41 128 +178 96 +66 157 +166 72 +87 135 +172 132 +108 136 +125 26 +20 77 +86 20 +55 28 +119 70 +124 11 +84 153 +183 197 +155 92 +107 83 +58 101 +2 132 +80 129 +51 183 +79 122 +52 24 +186 20 +125 176 +75 7 +158 79 +57 4 +134 26 +56 4 +106 166 +43 62 +134 32 +190 86 +158 146 +52 189 +177 149 +146 20 +42 55 +123 188 +191 198 +22 21 +150 91 +77 86 +36 198 +180 173 +14 53 +198 152 +105 152 +163 18 +42 196 +162 36 +68 83 +123 119 +44 117 +200 95 +75 114 +147 51 +55 156 +10 134 +7 169 +86 89 +93 7 +59 12 +42 173 +177 124 +148 68 +101 68 +153 159 +99 6 +85 25 +132 152 +10 133 +36 153 +25 114 +60 58 +13 136 +38 95 +123 48 +4 25 +177 80 +120 127 +151 79 +80 91 +129 128 +163 42 +151 102 +89 32 +198 58 +163 116 +174 156 +42 119 +118 98 +122 103 +28 76 +197 199 +157 38 +78 161 +18 14 +198 156 +14 181 +47 8 +173 124 +195 78 +29 114 +137 35 +91 102 +29 147 +157 37 +136 166 +77 31 +129 87 +115 153 +23 96 +123 104 +37 97 +197 40 +11 75 +96 157 +63 175 +101 61 +51 149 +92 182 +107 119 +34 194 +112 67 +49 6 +72 113 +133 29 +103 101 +99 164 +55 108 +81 82 +199 15 +29 80 +84 18 +102 172 +145 69 +27 29 +112 191 +187 151 +84 195 +57 76 +98 174 +126 36 +31 76 +80 128 +81 71 +192 161 +161 78 +91 59 +48 134 +180 184 +167 101 +168 28 +129 24 +62 106 +59 148 +11 71 +144 39 +175 128 +150 2 +160 200 +122 121 +178 54 +58 28 +41 96 +74 65 +158 91 +49 53 +64 83 +20 85 +89 143 +152 67 +136 122 +103 185 +33 65 +70 3 +44 78 +188 194 +3 183 +73 191 +89 28 +155 74 +147 98 +84 196 +119 148 +148 180 +158 124 +80 199 +19 168 +186 164 +200 171 +130 166 +47 81 +190 149 +164 71 +5 187 +159 168 +35 76 +122 145 +10 81 +39 164 +6 188 +53 192 +29 187 +56 153 +81 95 +82 68 +101 1 +120 88 +88 76 +151 185 +28 159 +64 105 +49 150 +112 185 +16 70 +124 170 +141 133 +49 81 +188 70 +118 23 +93 45 +17 5 +55 125 +172 50 +91 61 +166 87 +49 1 +38 89 +116 1 +101 119 +82 165 +132 126 +108 119 +33 143 +164 74 +200 25 +23 131 +194 45 +59 29 +131 196 +4 71 +160 83 +91 99 +170 165 +49 188 +196 145 +3 65 +139 179 +124 21 +152 174 +90 121 +130 131 +89 50 +86 1 +128 199 +180 51 +32 125 +194 78 +166 100 +32 63 +84 24 +37 33 +172 152 +44 45 +66 21 +42 120 +7 6 +177 24 +137 98 +41 153 +170 70 +15 133 +69 72 +172 150 +156 71 +135 74 +46 153 +144 137 +56 83 +193 20 +8 112 +106 42 +102 175 +88 199 +31 32 +168 74 +14 17 +196 152 +175 163 +37 176 +44 147 +153 1 +197 189 +166 156 +37 20 +140 98 +182 92 +92 1 +118 51 +68 6 +102 174 +185 117 +175 164 +26 35 +99 84 +67 146 +76 177 +57 122 +67 135 +2 48 +8 135 +169 9 +135 186 +150 147 +117 120 +121 200 +183 12 +25 57 +166 51 +93 107 +19 67 +116 50 +78 6 +116 168 +10 151 +154 53 +143 90 +87 117 +175 36 +102 42 +114 16 +56 167 +14 142 +16 117 +122 82 +158 167 +148 66 +147 76 +39 190 +98 2 +195 183 +77 43 +31 111 +197 154 +118 42 +126 116 +114 18 +59 53 +15 101 +188 67 +180 71 +122 169 +187 116 +174 115 +188 135 +141 176 +95 10 +3 18 +187 163 +187 26 +152 9 +108 149 +168 113 +150 78 +153 56 +23 167 +81 112 +25 186 +67 74 +23 3 +102 143 +81 69 +118 72 +57 193 +139 117 +125 84 +22 76 +129 178 +162 89 +13 182 +80 115 +71 69 +5 152 +65 154 +54 181 +200 2 +69 116 +171 181 +45 140 +118 178 +84 11 +157 86 +139 82 +134 189 +92 75 +89 192 +143 141 +126 68 +135 180 +163 132 +11 151 +102 21 +189 148 +8 38 +84 49 +151 161 +25 139 +75 166 +82 76 +104 60 +107 196 +136 125 +197 148 +25 37 +193 183 +71 11 +90 189 +19 172 +186 22 +52 106 +12 156 +137 181 +90 173 +123 137 +124 136 +36 178 +36 60 +40 199 +48 197 +161 136 +25 155 +127 65 +72 116 +166 163 +140 192 +39 35 +72 5 +195 65 +180 83 +64 190 +137 193 +160 116 +187 104 +64 126 +163 168 +115 25 +181 131 +43 107 +57 83 +95 74 +30 189 +69 109 +1 17 +157 132 +8 41 +125 163 +90 60 +79 1 +92 131 +38 159 +76 90 +79 184 +54 51 +23 4 +8 85 +140 45 +170 71 +33 53 +118 194 +139 57 +125 174 +5 15 +173 82 +39 5 +162 184 +48 39 +67 85 +16 134 +90 61 +31 184 +128 89 +52 132 +127 39 +187 55 +176 10 +119 147 +68 151 +131 129 +89 76 +152 72 +2 52 +20 80 +134 85 +33 80 +181 43 +113 167 +199 2 +28 167 +128 178 +19 24 +119 132 +144 49 +151 98 +133 65 +142 26 +17 32 +35 196 +190 169 +172 161 +47 82 +78 122 +79 191 +165 154 +35 137 +72 151 +165 49 +15 183 +149 4 +60 62 +119 54 +185 88 +27 193 +38 186 +183 120 +124 138 +24 167 +94 66 +16 193 +65 153 +151 18 +107 124 +2 89 +59 9 +174 73 +190 60 +55 185 +84 127 +65 122 +132 158 +195 165 +170 15 +76 85 +153 14 +107 177 +30 133 +108 46 +66 160 +28 2 +70 189 +162 61 +175 27 +93 168 +59 43 +45 142 +101 25 +21 179 +99 174 +67 26 +198 170 +154 181 +127 180 +190 21 +92 74 +47 179 +171 88 +158 14 +130 196 +123 70 +96 140 +158 33 +73 139 +80 1 +69 85 +182 118 +107 20 +71 5 +187 153 +181 149 +197 146 +13 116 +4 150 +39 95 +185 183 +188 166 +143 71 +106 191 +121 99 +122 113 +183 159 +123 121 +123 26 +71 58 +192 6 +71 182 +181 153 +127 150 +9 171 +169 32 +86 83 +106 79 +58 150 +164 22 +140 23 +136 38 +69 67 +14 184 +193 67 +139 84 +167 99 +77 172 +32 171 +122 200 +7 183 +108 12 +56 24 +159 70 +192 45 +6 52 +191 79 +65 167 +52 66 +99 115 +51 100 +174 9 +22 137 +129 19 +61 87 +168 94 +139 51 +2 185 +180 20 +184 135 +161 131 +9 54 +162 59 +100 16 +70 16 +125 33 +72 99 +198 45 +96 29 +4 110 +21 168 +67 62 +100 161 +40 87 +168 156 +86 172 +61 10 +129 86 +34 96 +187 107 +187 194 +59 151 +198 86 +14 45 +40 151 +2 184 +15 175 +119 53 +24 54 +84 143 +125 24 +120 31 +123 139 +185 1 +98 45 +39 160 +174 129 +43 96 +46 185 +110 31 +22 183 +167 94 +146 152 +196 174 +22 130 +160 92 +119 109 +194 159 +69 191 +125 58 +113 99 +173 51 +166 33 +172 19 +66 79 +120 191 +166 195 +174 97 +142 7 +62 78 +88 53 +149 26 +131 93 +126 25 +172 139 +59 144 +167 141 +192 195 +24 184 +84 74 +94 49 +35 172 +95 151 +77 14 +143 157 +79 46 +14 52 +52 98 +104 40 +91 12 +83 14 +144 91 +193 58 +22 64 +135 69 +63 121 +67 158 +61 169 +16 132 +137 152 +36 173 +197 22 +92 21 +18 71 +180 152 +107 195 +59 55 +71 41 +143 129 +163 143 +112 168 +39 161 +28 103 +7 197 +39 64 +184 191 +47 133 +53 8 +88 91 +75 126 +38 155 +69 4 +78 128 +200 105 +51 13 +195 48 +20 128 +45 55 +164 25 +73 156 +165 92 +88 77 +132 69 +175 173 +154 162 +18 12 +172 56 +36 124 +175 49 +116 47 +81 161 +12 25 +82 74 +134 158 +10 35 +104 148 +86 40 +34 153 +11 52 +143 176 +193 54 +175 135 +78 21 +70 195 +62 128 +39 13 +85 173 +68 158 +113 159 +104 111 +127 147 +26 65 +11 121 +31 68 +186 121 +163 188 +10 195 +165 148 +53 160 +5 64 +170 83 +40 44 +33 122 +19 48 +30 73 +148 169 +44 132 +48 161 +22 81 +150 136 +58 141 +103 149 +41 79 +98 156 +173 83 +117 91 +32 180 +160 2 +143 186 +75 56 +15 48 +36 143 +195 80 +4 5 +139 105 +183 101 +25 150 +78 74 +44 98 +172 106 +172 107 +149 7 +117 141 +73 174 +186 67 +54 31 +109 101 +40 185 +83 94 +25 13 +183 28 +190 65 +109 163 +170 124 +59 196 +130 193 +56 177 +147 175 +189 115 +126 123 +33 156 +101 6 +186 112 +75 136 +15 52 +162 191 +110 51 +9 15 +49 133 +190 165 +149 104 +16 64 +70 196 +163 119 +133 89 +67 71 +69 143 +96 8 +16 58 +14 96 +84 144 +191 62 +94 184 +198 103 +100 174 +108 154 +167 123 +42 182 +199 118 +163 24 +116 27 +118 80 +137 200 +102 71 +132 27 +98 170 +121 120 +136 187 +38 44 +12 171 +174 166 +34 12 +186 56 +123 149 +39 169 +97 10 +168 47 +80 148 +70 159 +19 194 +133 177 +86 190 +49 127 +32 160 +129 14 +98 155 +62 179 +168 191 +37 182 +68 145 +128 14 +103 89 +193 53 +16 41 +148 78 +192 65 +117 143 +149 77 +20 184 +138 111 +69 185 +114 191 +75 88 +191 59 +99 188 +197 116 +179 161 +109 190 +73 82 +36 74 +159 136 +114 106 +182 54 +78 188 +118 140 +87 101 +199 16 +126 52 +83 120 +29 86 +136 14 +120 49 +167 104 +115 189 +87 191 +92 162 +110 200 +10 23 +122 170 +90 178 +64 19 +108 5 +70 59 +5 168 +156 151 +101 93 +198 184 +88 8 +55 132 +109 59 +2 42 +84 36 +139 6 +192 50 +14 117 +159 17 +130 62 +190 104 +78 196 +3 106 +53 182 +126 99 +77 110 +184 116 +40 142 +52 46 +76 31 +109 111 +191 102 +36 167 +93 88 +161 17 +166 155 +145 100 +146 125 +64 30 +1 77 +74 122 +9 151 +141 111 +90 70 +38 107 +53 118 +131 49 +13 115 +42 68 +6 85 +147 75 +31 130 +151 103 +61 161 +114 159 +64 70 +99 151 +84 90 +160 152 +20 24 +3 25 +89 123 +58 185 +101 143 +172 83 +130 187 +80 24 +158 149 +42 142 +33 124 +123 187 +103 25 +17 154 +87 91 +169 143 +22 104 +142 177 +67 137 +171 103 +143 182 +95 161 +9 21 +166 164 +125 45 +153 103 +156 110 +194 123 +36 97 +174 149 +136 61 +90 154 +85 146 +11 91 +190 46 +158 1 +132 195 +69 60 +116 4 +32 77 +152 199 +194 91 +104 53 +162 71 +192 67 +4 41 +175 87 +18 44 +190 192 +91 191 +65 165 +31 59 +29 149 +147 21 +97 36 +126 81 +126 28 +193 160 +28 93 +195 72 +2 113 +83 142 +92 167 +82 130 +132 60 +186 78 +125 39 +8 57 +106 97 +52 107 +157 130 +13 76 +137 165 +126 24 +91 145 +38 165 +121 164 +81 44 +199 141 +160 50 +182 128 +54 138 +150 154 +98 85 +124 123 +60 140 +97 159 +105 113 +61 199 +72 107 +126 171 +149 8 +17 90 +91 136 +74 184 +130 65 +143 125 +109 38 +77 200 +187 35 +113 85 +154 81 +147 153 +177 39 +37 123 +138 153 +131 11 +108 26 +178 22 +176 199 +179 165 +157 77 +100 2 +131 191 +173 52 +154 21 +41 56 +13 26 +52 176 +12 56 +19 192 +196 163 +159 59 +179 186 +11 96 +3 69 +22 67 +48 41 +137 70 +73 80 +25 196 +164 196 +114 115 +155 23 +83 41 +3 5 +191 2 +32 198 +124 61 +171 23 +63 1 +158 199 +145 49 +9 152 +134 185 +111 154 +64 163 +158 110 +190 108 +40 164 +64 166 +191 130 +16 192 +118 164 +136 188 +144 114 +87 173 +6 96 +121 113 +111 42 +20 37 +199 19 +55 135 +101 77 +93 37 +175 106 +156 138 +54 7 +4 78 +174 87 +121 192 +56 180 +178 165 +61 86 +194 32 +175 2 +4 130 +64 87 +99 138 +63 83 +23 108 +155 128 +130 153 +131 122 +44 195 +73 159 +190 10 +61 137 +70 139 +31 120 +99 8 +122 11 +86 94 +5 155 +197 167 +27 158 +65 190 +116 152 +161 165 +120 9 +39 19 +27 2 +197 97 +22 4 +75 20 +75 24 +160 44 +146 116 +146 197 +157 79 +22 122 +72 144 +76 123 +125 143 +57 35 +81 132 +143 136 +141 77 +178 35 +179 177 +108 91 +67 72 +101 174 +15 165 +38 136 +128 38 +74 69 +163 16 +87 122 +147 168 +6 140 +189 119 +31 140 +14 51 +61 165 +10 128 +168 49 +136 127 +43 36 +154 32 +12 48 +147 78 +94 194 +112 107 +114 193 +183 88 +63 106 +113 142 +80 94 +116 42 +166 128 +29 105 +75 19 +162 92 +3 60 +66 91 +24 113 +160 184 +47 20 +43 187 +106 178 +176 175 +148 193 +43 1 +32 145 +16 188 +133 141 +183 169 +114 156 +50 8 +8 43 +180 60 +199 77 +150 185 +183 49 +193 84 +165 88 +111 87 +10 33 +65 172 +74 28 +159 165 +76 40 +138 150 +56 117 +42 46 +95 180 +54 21 +49 159 +144 101 +129 170 +99 63 +127 10 +68 199 +197 77 +159 160 +161 166 +131 10 +110 21 +13 32 +21 145 +16 145 +199 11 +113 154 +31 64 +169 166 +195 14 +105 10 +79 103 +20 89 +164 183 +75 194 +96 153 +4 153 +41 87 +186 151 +189 142 +80 185 +195 58 +191 183 +50 16 +49 190 +187 19 +43 60 +131 192 +178 118 +74 142 +27 180 +59 171 +46 7 +147 49 +129 3 +192 187 +177 102 +94 28 +70 21 +168 196 +114 167 +14 160 +182 136 +162 173 +33 60 +65 148 +179 8 +59 40 +4 176 +156 169 +187 127 +23 113 +66 142 +127 51 +164 127 +159 192 +112 167 +134 50 +121 2 +9 160 +63 141 +189 165 +107 61 +183 91 +63 51 +106 162 +54 168 +3 198 +195 2 +75 23 +177 96 +192 103 +168 134 +60 110 +16 170 +181 65 +184 105 +99 161 +109 43 +48 146 +51 193 +10 8 +110 87 +45 43 +42 7 +161 116 +82 17 +114 134 +155 110 +132 118 +20 107 +47 91 +75 22 +81 67 +171 35 +72 14 +5 36 +162 11 +158 24 +172 133 +128 155 +131 163 +25 173 +169 16 +185 146 +178 84 +133 113 +197 107 +131 29 +191 23 +63 21 +5 100 +133 195 +5 158 +159 146 +194 50 +75 183 +114 30 +146 185 +23 199 +186 198 +181 191 +71 145 +197 161 +192 123 +91 82 +137 24 +3 117 +96 57 +164 82 +20 167 +200 45 +30 184 +90 162 +117 5 +119 135 +115 55 +81 145 +27 15 +176 184 +50 150 +198 48 +57 48 +187 50 +71 175 +145 161 +50 185 +82 131 +99 68 +137 185 +166 57 +25 67 +49 175 +78 112 +56 138 +184 42 +71 195 +171 51 +55 78 +57 117 +169 155 +56 14 +57 16 +174 167 +50 106 +67 103 +70 25 +60 20 +88 7 +186 199 +110 162 +60 63 +93 108 +120 147 +183 1 +143 169 +171 60 +31 179 +199 92 +155 83 +49 21 +199 8 +35 100 +187 102 +93 94 +138 77 +104 191 +150 161 +20 140 +97 11 +157 92 +65 32 +171 195 +119 160 +131 81 +107 5 +3 59 +100 123 +90 151 +72 87 +100 36 +24 73 +97 3 +100 44 +23 10 +19 78 +154 104 +107 147 +90 112 +55 120 +98 113 +179 15 +124 97 +200 149 +144 134 +180 34 +117 136 +186 66 +102 74 +193 85 +92 105 +47 154 +105 174 +13 16 +87 55 +191 131 +54 142 +57 194 +117 145 +160 100 +137 109 +196 44 +170 86 +36 68 +191 133 +67 190 +118 112 +140 145 +64 165 +64 56 +12 109 +115 145 +76 199 +4 59 +18 40 +127 59 +184 93 +90 174 +190 136 +98 118 +61 107 +131 164 +132 146 +199 132 +100 141 +8 39 +36 163 +1 156 +11 158 +178 30 +147 34 +193 107 +97 44 +71 104 +133 73 +3 44 +68 53 +49 50 +196 194 +74 27 +134 104 +36 63 +74 47 +89 96 +59 36 +80 15 +57 132 +128 15 +74 117 +145 38 +155 90 +33 70 +146 33 +144 113 +34 162 +139 142 +184 126 +18 195 +58 200 +144 157 +139 190 +105 25 +3 133 +157 184 +89 35 +186 109 +109 137 +141 38 +63 177 +99 183 +198 120 +38 74 +24 88 +159 102 +100 8 +187 42 +95 23 +22 37 +33 181 +6 160 +26 168 +142 169 +65 64 +87 46 +130 144 +105 153 +108 7 +57 149 +69 37 +134 196 +67 112 +102 28 +171 194 +32 3 +192 167 +82 190 +106 75 +128 84 +190 157 +157 142 +200 156 +21 169 +110 184 +194 146 +37 100 +175 88 +22 53 +44 14 +108 18 +17 46 +42 183 +49 167 +40 155 +24 183 +19 185 +9 93 +148 150 +78 39 +90 108 +10 107 +27 161 +130 168 +194 21 +141 143 +85 170 +15 99 +101 130 +192 189 +72 139 +49 82 +37 74 +186 125 +86 122 +156 62 +30 173 +119 1 +187 100 +12 73 +49 122 +60 191 +154 10 +169 187 +167 162 +110 44 +185 48 +17 169 +161 122 +77 122 +111 28 +182 84 +189 97 +95 83 +120 104 +186 63 +164 20 +155 73 +153 182 +163 182 +14 62 +124 7 +91 75 +55 145 +159 119 +119 63 +112 110 +185 6 +127 114 +169 2 +34 142 +155 18 +156 72 +140 181 +105 190 +87 112 +9 88 +160 60 +7 25 +135 138 +15 149 +122 151 +30 42 +68 97 +24 67 +98 114 +27 183 +72 119 +104 86 +143 50 +182 104 +116 17 +56 158 +97 182 +32 133 +118 18 +21 13 +2 37 +98 20 +47 185 +23 109 +127 148 +183 155 +157 59 +119 128 +109 103 +60 52 +200 147 +124 156 +68 146 +158 126 +74 6 +170 197 +119 165 +162 182 +190 155 +80 34 +47 60 +115 143 +2 63 +112 146 +71 127 +179 153 +135 156 +55 162 +83 112 +90 144 +181 10 +116 37 +134 19 +155 3 +143 134 +22 102 +199 32 +98 115 +159 187 +69 68 +84 40 +4 40 +187 114 +53 6 +71 78 +4 142 +60 101 +125 137 +83 102 +24 132 +167 139 +95 85 +170 11 +164 148 +192 69 +60 197 +111 54 +81 173 +97 99 +97 170 +162 43 +135 165 +26 38 +134 48 +102 34 +177 145 +56 51 +17 131 +17 58 +23 57 +79 123 +82 167 +64 111 +176 164 +40 32 +32 106 +177 146 +108 111 +78 163 +169 69 +19 37 +83 163 +62 132 +182 149 +186 23 +30 163 +145 186 +154 6 +42 39 +114 27 +90 79 +15 186 +15 90 +134 128 +34 40 +162 137 +136 106 +200 189 +146 11 +133 52 +49 151 +119 163 +196 144 +138 42 +146 167 +120 39 +62 59 +41 58 +38 30 +64 197 +194 60 +94 69 +80 167 +164 166 +142 42 +109 148 +137 84 +86 66 +11 90 +197 33 +12 137 +11 40 +56 175 +17 127 +65 55 +62 66 +163 48 +161 128 +155 114 +80 40 +50 155 +107 44 +173 3 +188 24 +137 177 +152 165 +132 65 +106 18 +161 102 +81 85 +182 144 +72 160 +173 147 +28 166 +111 67 +3 66 +154 138 +49 160 +197 4 +200 180 +168 27 +123 43 +13 119 +158 169 +23 33 +128 31 +156 103 +192 51 +66 47 +185 188 +180 108 +77 130 +25 88 +89 16 +25 70 +156 82 +81 117 +38 170 +80 151 +14 31 +59 119 +60 105 +44 112 +49 23 +65 40 +100 168 +122 57 +153 123 +55 186 +39 113 +195 187 +29 127 +88 75 +148 65 +129 83 +107 68 +161 178 +32 150 +112 197 +98 49 +153 105 +41 23 +193 76 +77 144 +60 75 +145 18 +170 17 +168 21 +159 39 +147 23 +76 162 +95 2 +119 94 +160 194 +124 30 +38 2 +56 133 +6 131 +5 51 +126 186 +194 67 +187 175 +3 187 +124 43 +120 62 +83 6 +170 28 +197 125 +88 102 +20 111 +192 33 +76 51 +106 49 +177 83 +155 137 +148 163 +126 33 +128 127 +105 180 +64 35 +34 81 +94 92 +2 188 +63 100 +53 15 +70 41 +41 8 +94 135 +165 60 +150 98 +169 145 +9 195 +93 141 +138 170 +74 98 +14 177 +195 45 +85 132 +24 199 +77 36 +38 31 +101 96 +128 144 +91 168 +153 189 +116 2 +21 101 +162 128 +40 141 +197 14 +68 77 +22 5 +134 6 +128 24 +73 162 +54 66 +135 20 +186 7 +126 147 +46 110 +82 112 +116 172 +74 45 +92 138 +179 168 +11 110 +103 17 +126 173 +165 163 +124 110 +28 160 +173 163 +121 141 +189 31 +127 75 +26 152 +180 179 +6 64 +140 82 +169 35 +35 84 +139 42 +78 144 +77 20 +198 164 +44 199 +103 74 +46 97 +135 82 +1 98 +26 18 +5 176 +78 72 +46 75 +36 186 +113 147 +113 143 +28 172 +166 109 +54 90 +99 18 +55 174 +110 17 +87 51 +125 20 +86 21 +76 195 +82 166 +150 12 +28 133 +88 83 +40 119 +126 13 +22 25 +109 98 +110 197 +83 134 +38 26 +40 113 +21 155 +86 53 +98 21 +70 144 +17 8 +177 91 +104 58 +45 183 +52 60 +18 19 +140 41 +48 171 +86 117 +163 162 +74 116 +191 98 +111 41 +39 94 +169 10 +31 128 +69 3 +19 109 +116 138 +55 89 +52 169 +120 98 +159 152 +84 66 +142 102 +149 160 +91 117 +8 193 +7 126 +52 47 +110 182 +58 108 +93 14 +107 2 +11 77 +59 181 +125 181 +58 84 +103 198 +189 30 +61 191 +111 3 +127 92 +123 161 +199 169 +185 121 +10 54 +92 86 +93 75 +48 125 +84 70 +98 81 +135 12 +68 162 +142 3 +167 41 +20 28 +74 49 +135 33 +134 194 +179 164 +8 182 +70 91 +144 162 +67 30 +154 197 +129 112 +172 10 +77 170 +155 36 +118 114 +43 54 +101 156 +187 13 +15 49 +26 149 +8 53 +131 96 +151 153 +81 36 +86 56 +29 51 +157 48 +112 87 +101 35 +35 98 +188 173 +80 46 +68 18 +173 89 +23 152 +116 157 +30 60 +138 119 +12 87 +105 20 +25 140 +76 20 +128 43 +195 117 +120 69 +101 90 +190 140 +159 200 +125 129 +163 126 +88 74 +186 200 +166 93 +16 9 +140 184 +114 118 +177 14 +45 114 +128 149 +25 32 +7 74 +149 135 +98 141 +48 86 +27 137 +123 115 +116 20 +174 153 +2 116 +176 45 +55 142 +28 135 +66 24 +110 8 +168 146 +85 110 +119 99 +107 37 +99 23 +48 38 +154 149 +101 48 +89 61 +143 132 +84 146 +17 85 +19 82 +120 106 +9 78 +196 166 +188 124 +159 104 +91 172 +140 123 +67 100 +29 42 +27 68 +42 131 +183 4 +45 89 +65 163 +72 104 +192 163 +148 127 +18 58 +10 75 +39 116 +172 116 +18 45 +183 143 +146 165 +81 123 +145 34 +65 73 +118 167 +14 149 +9 31 +38 171 +13 71 +70 153 +138 19 +27 179 +40 12 +136 20 +40 150 +62 105 +97 51 +11 106 +148 96 +17 3 +197 71 +154 8 +176 148 +181 137 +111 101 +81 177 +95 101 +102 123 +42 165 +31 155 +200 4 +63 74 +65 184 +136 69 +108 67 +61 34 +3 167 +3 45 +152 180 +3 145 +55 74 +192 199 +153 6 +75 186 +82 194 +141 178 +127 161 +113 152 +184 145 +139 78 +107 64 +74 92 +66 27 +157 106 +91 98 +3 82 +190 141 +166 117 +143 106 +26 189 +189 8 +69 110 +182 131 +194 81 +187 23 +160 38 +172 146 +156 49 +150 182 +25 44 +121 189 +113 161 +32 92 +37 27 +146 194 +46 27 +144 33 +66 71 +139 23 +11 133 +4 31 +55 148 +192 11 +46 120 +95 48 +174 18 +79 68 +53 86 +149 24 +125 88 +30 2 +169 6 +15 7 +82 80 +1 42 +172 194 +194 132 +119 13 +130 52 +133 92 +145 30 +58 113 +144 119 +25 24 +81 176 +159 20 +165 125 +151 2 +69 91 +176 74 +141 121 +57 44 +90 26 +35 199 +84 170 +78 139 +63 28 +69 29 +179 88 +86 199 +47 170 +48 76 +177 162 +89 91 +124 146 +83 59 +168 11 +146 107 +1 103 +194 111 +21 193 +97 75 +58 46 +131 18 +16 11 +73 96 +49 102 +66 82 +5 33 +32 17 +27 109 +122 13 +38 196 +148 45 +149 114 +184 119 +109 83 +107 111 +71 64 +157 100 +161 21 +13 121 +153 193 +151 42 +116 182 +189 94 +65 36 +74 18 +123 144 +42 117 +35 80 +186 28 +152 149 +106 64 +200 126 +177 111 +130 32 +194 19 +109 139 +91 167 +198 137 +6 107 +36 94 +95 91 +23 93 +111 122 +32 97 +168 68 +180 111 +154 69 +149 158 +198 155 +81 169 +50 160 +95 185 +126 146 +65 70 +83 84 +112 132 +4 101 +197 130 +92 36 +177 38 +96 25 +114 46 +44 74 +137 90 +137 5 +58 142 +46 156 +32 15 +58 33 +166 136 +9 105 +158 32 +105 77 +147 82 +113 57 +99 137 +188 78 +174 142 +198 193 +5 84 +172 92 +116 64 +108 121 +32 115 +74 182 +180 140 +132 156 +129 130 +23 9 +181 147 +98 142 +128 180 +165 177 +80 39 +112 37 +84 13 +27 150 +70 54 +162 95 +77 119 +100 169 +26 42 +189 77 +64 132 +89 119 +137 82 +166 173 +36 132 +72 40 +68 117 +174 105 +30 52 +163 134 +36 89 +145 168 +98 119 +128 79 +132 40 +172 70 +98 106 +11 35 +25 16 +141 159 +96 144 +92 187 +39 48 +149 49 +21 176 +166 151 +60 27 +104 160 +132 103 +79 165 +98 147 +168 102 +139 60 +110 126 +67 107 +1 113 +71 154 +41 45 +106 5 +56 68 +58 102 +155 172 +105 161 +25 51 +153 85 +190 72 +174 159 +147 157 +38 73 +83 64 +70 51 +123 186 +71 54 +99 108 +21 105 +5 2 +195 200 +144 61 +101 116 +111 9 +141 81 +151 170 +157 85 +111 14 +28 31 +151 144 +9 143 +77 178 +7 102 +33 40 +147 73 +83 4 +69 26 +5 68 +128 58 +95 97 +113 193 +138 141 +133 112 +81 141 +47 147 +104 7 +75 145 +11 62 +115 193 +154 93 +68 5 +105 131 +104 116 +150 137 +17 39 +7 141 +11 144 +190 96 +168 26 +145 158 +139 156 +146 148 +91 175 +124 89 +147 125 +11 7 +132 75 +191 28 +16 140 +122 160 +1 136 +15 197 +109 18 +85 56 +7 79 +128 26 +3 112 +161 36 +88 21 +74 144 +45 100 +17 7 +33 6 +124 196 +100 21 +118 33 +29 64 +154 34 +164 59 +135 137 +194 163 +68 26 +93 55 +30 24 +152 116 +71 36 +182 125 +113 67 +76 139 +28 70 +29 136 +121 181 +72 76 +77 60 +151 194 +85 192 +20 69 +123 32 +41 86 +129 159 +146 69 +29 72 +177 5 +25 125 +33 180 +194 52 +31 127 +6 98 +106 181 +10 144 +176 124 +182 34 +65 23 +76 82 +8 73 +161 15 +176 97 +112 128 +148 173 +179 197 +149 184 +75 104 +2 31 +159 123 +149 113 +78 157 +27 39 +138 94 +61 31 +161 5 +9 104 +74 148 +101 49 +104 102 +37 162 +184 78 +82 54 +54 22 +169 101 +158 171 +8 21 +133 120 +43 130 +187 15 +164 37 +7 170 +44 133 +69 86 +48 64 +52 134 +178 50 +32 190 +150 142 +191 184 +7 182 +16 176 +91 125 +59 195 +82 73 +151 95 +33 41 +101 144 +20 151 +192 101 +145 148 +6 186 +140 19 +33 152 +177 69 +35 200 +114 10 +118 161 +54 50 +98 44 +97 35 +52 112 +169 118 +124 94 +29 180 +183 56 +173 42 +176 128 +26 180 +106 87 +99 78 +2 123 +90 101 +80 77 +2 50 +119 82 +100 13 +71 196 +134 195 +71 191 +80 48 +94 6 +72 163 +192 179 +188 3 +45 7 +123 12 +121 44 +77 181 +168 14 +58 127 +195 173 +35 155 +144 75 +132 171 +84 150 +194 147 +92 90 +184 69 +40 96 +189 99 +152 77 +186 34 +196 125 +29 103 +173 54 +23 73 +137 184 +38 142 +88 151 +165 183 +192 55 +12 112 +92 26 +25 4 +74 15 +182 37 +31 115 +165 68 +147 38 +180 198 +186 88 +101 132 +38 138 +110 96 +31 39 +2 146 +16 104 +164 137 +8 187 +116 85 +67 126 +99 194 +51 75 +78 51 +148 62 +100 66 +46 114 +135 70 +129 103 +141 97 +42 62 +80 171 +114 45 +86 26 +7 117 +173 55 +160 125 +9 186 +127 36 +47 160 +142 40 +160 168 +62 196 +135 175 +144 183 +177 170 +172 79 +195 38 +42 164 +73 57 +23 140 +103 143 +27 153 +91 65 +146 179 +188 48 +65 183 +187 176 +69 148 +18 198 +80 55 +109 200 +63 47 +30 175 +190 23 +117 186 +18 172 +153 77 +162 193 +181 152 +40 33 +83 123 +93 83 +56 67 +59 173 +165 133 +130 85 +62 121 +76 74 +17 56 +159 69 +65 28 +161 150 +183 89 +89 109 +110 57 +63 79 +41 61 +196 183 +91 119 +67 183 +155 16 +152 2 +152 100 +127 110 +143 69 +109 152 +101 38 +76 5 +162 166 +181 40 +151 192 +163 31 +137 103 +123 83 +100 185 +6 165 +138 191 +122 135 +159 171 +14 46 +118 169 +114 178 +150 48 +5 107 +79 171 +157 4 +4 131 +124 29 +156 121 +88 104 +177 52 +52 2 +168 57 +189 64 +75 147 +110 20 +146 144 +8 79 +103 109 +97 152 +29 84 +86 134 +37 196 +44 24 +136 71 +114 55 +56 137 +87 34 +40 1 +164 13 +94 7 +125 187 +92 16 +109 107 +146 97 +77 84 +44 28 +105 197 +166 73 +130 16 +5 19 +136 31 +125 82 +154 49 +109 153 +170 100 +57 138 +121 160 +175 146 +183 170 +21 102 +162 75 +17 86 +124 147 +54 148 +150 140 +197 142 +188 171 +121 53 +16 131 +124 102 +32 93 +136 137 +133 45 +44 12 +17 121 +180 115 +14 22 +82 183 +103 50 +175 72 +99 13 +40 171 +36 49 +1 21 +14 95 +9 200 +27 120 +161 48 +156 125 +73 16 +190 73 +139 131 +155 43 +117 131 +96 166 +16 115 +1 182 +42 58 +184 3 +49 147 +124 3 +199 81 +198 113 +123 160 +109 199 +77 88 +41 91 +46 4 +9 70 +92 65 +127 167 +149 68 +117 157 +51 200 +37 25 +88 197 +117 38 +192 152 +193 68 +14 164 +131 109 +190 83 +80 49 +55 1 +28 198 +71 56 +31 99 +50 187 +82 70 +194 135 +19 131 +35 127 +161 152 +7 90 +118 187 +87 16 +29 28 +57 78 +8 81 +187 183 +187 147 +69 38 +186 83 +54 16 +117 180 +92 142 +184 26 +187 94 +197 106 +115 116 +101 183 +2 45 +176 56 +138 48 +9 158 +131 53 +145 189 +31 50 +46 50 +159 78 +156 16 +160 20 +38 125 +193 143 +136 189 +81 45 +16 120 +171 5 +50 7 +39 198 +51 62 +72 93 +43 37 +142 152 +45 77 +162 13 +108 147 +49 44 +10 87 +54 174 +23 43 +83 156 +107 16 +67 108 +153 57 +197 108 +32 135 +181 188 +78 160 +162 19 +150 162 +9 36 +68 29 +196 136 +111 32 +193 149 +197 191 +2 41 +58 162 +24 153 +63 167 +93 165 +192 30 +55 92 +74 59 +200 186 +6 155 +189 81 +49 94 +146 54 +71 57 +48 143 +131 61 +20 121 +150 94 +107 17 +173 123 +42 52 +174 89 +193 191 +1 62 +152 173 +38 195 +25 130 +69 130 +199 60 +50 117 +154 36 +177 35 +103 94 +33 139 +199 1 +124 141 +29 122 +191 94 +71 51 +129 71 +104 129 +6 100 +187 65 +155 130 +196 199 +52 113 +5 160 +102 79 +85 87 +161 44 +122 101 +128 188 +169 200 +9 61 +161 52 +43 141 +49 47 +86 35 +130 66 +133 31 +187 138 +106 120 +127 126 +124 14 +91 85 +39 165 +65 101 +72 89 +77 168 +144 46 +199 112 +1 124 +141 50 +58 159 +62 33 +150 100 +13 86 +97 169 +185 130 +47 21 +74 162 +104 19 +3 122 +166 25 +30 177 +23 19 +50 17 +198 3 +8 45 +120 67 +72 81 +100 49 +75 9 +102 133 +87 89 +46 12 +125 25 +141 35 +14 120 +137 192 +73 150 +155 84 +11 116 +61 11 +135 1 +38 77 +110 135 +118 58 +115 99 +1 171 +37 143 +20 19 +174 42 +170 80 +151 15 +54 155 +101 52 +121 156 +59 87 +168 70 +118 53 +164 197 +54 154 +24 101 +197 104 +39 45 +150 13 +194 94 +82 198 +138 127 +164 118 +66 118 +38 137 +75 91 +70 150 +143 22 +110 84 +130 87 +166 152 +112 162 +163 4 +56 69 +33 99 +95 89 +161 121 +53 45 +185 20 +42 33 +138 157 +36 133 +43 173 +80 66 +96 15 +114 44 +152 53 +188 45 +84 64 +14 139 +32 68 +125 36 +140 86 +49 19 +88 10 +106 159 +52 111 +73 131 +126 134 +62 55 +8 7 +110 170 +14 190 +22 86 +62 195 +166 131 +19 124 +39 81 +79 117 +127 128 +48 75 +39 185 +47 52 +8 115 +19 90 +31 138 +69 30 +85 79 +164 145 +68 176 +11 170 +125 23 +98 161 +98 137 +38 14 +162 67 +3 168 +99 42 +80 172 +97 46 +6 95 +123 178 +111 139 +162 123 +91 93 +100 67 +146 66 +74 56 +9 161 +43 67 +131 127 +51 111 +3 172 +108 68 +112 102 +90 117 +90 24 +142 68 +149 176 +67 138 +46 121 +143 66 +2 12 +28 84 +104 172 +66 64 +155 87 +26 146 +85 7 +35 110 +96 72 +124 6 +183 152 +37 88 +147 10 +185 149 +35 93 +119 200 +34 45 +129 59 +15 69 +94 182 +134 28 +136 193 +159 44 +120 36 +79 172 +58 21 +66 165 +26 186 +29 96 +187 124 +13 131 +1 115 +16 153 +99 169 +72 48 +190 132 +114 40 +102 131 +141 61 +23 64 +185 193 +76 124 +106 113 +133 183 +148 34 +146 45 +101 152 +10 7 +89 24 +140 113 +65 171 +63 120 +141 18 +47 168 +140 61 +120 78 +145 91 +47 139 +111 140 +170 13 +60 122 +35 159 +23 132 +181 160 +158 97 +177 61 +171 10 +61 45 +152 48 +13 92 +47 150 +150 61 +122 178 +49 173 +173 148 +56 118 +196 118 +55 192 +158 9 +22 96 +106 114 +94 77 +56 184 +55 30 +63 114 +51 192 +39 173 +190 114 +22 140 +191 196 +43 121 +17 179 +159 82 +178 181 +52 186 +33 144 +50 94 +99 35 +74 51 +60 6 +104 190 +20 36 +10 46 +54 150 +119 20 +195 9 +8 95 +160 131 +118 184 +167 86 +69 136 +24 1 +19 23 +174 135 +186 95 +12 95 +53 147 +11 177 +149 92 +50 148 +123 31 +11 111 +89 36 +87 77 +159 93 +174 138 +25 128 +77 145 +185 43 +98 64 +174 196 +46 34 +89 102 +101 193 +87 43 +118 162 +20 99 +176 136 +107 128 +37 128 +96 149 +130 77 +39 152 +112 111 +74 70 +10 53 +75 133 +36 51 +17 69 +26 23 +190 191 +91 173 +24 2 +189 178 +187 83 +72 9 +182 76 +187 174 +65 168 +19 21 +37 129 +135 94 +81 42 +58 15 +46 16 +166 83 +96 152 +60 129 +39 73 +132 71 +79 154 +185 174 +113 117 +16 150 +114 96 +138 121 +101 4 +98 109 +63 132 +181 144 +85 26 +187 197 +44 134 +46 160 +114 126 +64 12 +166 26 +72 140 +188 19 +27 86 +120 105 +6 114 +176 88 +63 195 +145 194 +145 93 +179 59 +125 184 +121 30 +73 177 +179 25 +3 51 +105 15 +19 188 +41 25 +142 65 +126 23 +181 155 +96 100 +196 56 +61 167 +185 85 +184 103 +95 68 +18 189 +158 178 +47 104 +60 66 +86 132 +90 77 +54 17 +171 99 +11 123 +14 173 +133 171 +70 197 +174 110 +192 21 +53 105 +38 28 +38 27 +165 182 +140 35 +111 93 +6 20 +111 63 +145 47 +188 80 +194 61 +59 170 +185 19 +192 22 +48 126 +123 95 +93 142 +160 179 +153 151 +181 184 +12 24 +5 17 +186 80 +40 6 +77 158 +103 195 +169 51 +51 93 +95 38 +68 47 +4 11 +183 67 +181 98 +172 155 +117 71 +20 196 +172 61 +5 125 +33 115 +175 185 +72 188 +196 116 +128 33 +134 76 +105 92 +144 178 +100 127 +99 146 +118 77 +8 128 +160 122 +15 114 +36 72 +60 41 +103 83 +129 44 +115 170 +68 159 +45 123 +28 40 +25 104 +157 117 +169 64 +197 63 +64 26 +30 181 +180 139 +59 98 +45 82 +16 112 +127 9 +63 191 +7 186 +163 74 +156 64 +104 182 +19 117 +172 99 +15 35 +27 189 +59 169 +144 187 +185 98 +86 90 +93 92 +77 113 +11 47 +1 8 +3 154 +103 95 +161 13 +98 59 +37 32 +108 109 +12 128 +107 125 +104 69 +108 21 +61 127 +54 145 +180 137 +154 165 +183 64 +98 74 +141 131 +181 93 +10 31 +86 161 +65 199 +18 35 +152 137 +66 177 +55 126 +99 135 +72 4 +84 28 +198 81 +142 89 +10 103 +87 63 +43 44 +40 91 +168 62 +153 142 +39 36 +184 123 +57 172 +142 93 +126 190 +123 98 +148 26 +149 131 +83 93 +135 188 +185 66 +70 199 +88 185 +110 104 +150 168 +23 42 +28 129 +80 108 +146 22 +28 183 +186 129 +182 98 +92 197 +127 8 +189 118 +92 166 +53 166 +56 26 +83 145 +34 5 +143 77 +24 58 +172 18 +199 187 +78 184 +191 48 +185 101 +46 51 +142 57 +196 139 +35 19 +5 150 +24 188 +166 13 +197 27 +63 61 +184 12 +75 176 +100 84 +61 188 +126 112 +25 3 +57 198 +87 177 +97 21 +104 8 +162 29 +67 80 +119 50 +136 47 +57 119 +186 48 +46 55 +115 105 +62 85 +108 135 +175 139 +90 88 +143 112 +174 141 +54 102 +22 150 +1 139 +3 192 +55 43 +52 74 +87 32 +200 46 +158 5 +24 5 +102 183 +133 41 +188 13 +112 4 +86 177 +161 200 +165 40 +80 123 +66 90 +15 32 +169 20 +125 67 +16 137 +107 7 +100 90 +138 36 +170 27 +97 39 +104 101 +107 175 +15 104 +119 85 +143 94 +116 165 +60 126 +65 176 +132 89 +49 90 +138 116 +167 30 +23 80 +154 45 +84 169 +60 161 +40 35 +199 97 +72 29 +151 156 +6 48 +148 18 +170 119 +45 28 +91 131 +22 165 +192 16 +137 174 +72 194 +29 73 +136 117 +90 37 +39 34 +121 148 +106 123 +4 63 +53 159 +128 121 +23 123 +32 159 +86 195 +177 121 +149 94 +154 174 +153 72 +86 25 +101 59 +159 179 +198 97 +168 77 +87 178 +64 38 +112 166 +84 193 +28 131 +71 34 +65 76 +180 77 +16 169 +62 30 +33 18 +71 59 +103 34 +140 141 +47 118 +143 61 +20 22 +18 74 +43 101 +104 145 +143 9 +194 69 +136 174 +121 139 +26 21 +121 42 +14 101 +185 73 +1 93 +190 2 +125 172 +197 150 +192 86 +44 68 +72 22 +79 88 +3 109 +93 23 +178 102 +66 156 +7 131 +44 40 +70 105 +182 121 +150 31 +80 61 +128 92 +50 18 +199 140 +33 23 +89 62 +130 108 +33 81 +25 8 +63 89 +107 46 +157 197 +171 198 +81 86 +44 31 +123 125 +20 193 +26 162 +97 143 +38 92 +99 66 +194 82 +159 67 +145 129 +62 166 +166 59 +3 113 +90 169 +119 59 +44 42 +75 182 +37 47 +26 200 +124 198 +72 192 +100 192 +25 75 +152 188 +29 50 +133 88 +78 38 +138 110 +48 29 +77 174 +149 112 +103 45 +186 60 +153 67 +190 142 +155 40 +182 141 +178 67 +190 15 +18 5 +86 182 +187 7 +89 173 +80 130 +33 120 +143 54 +117 107 +124 109 +97 22 +125 29 +117 104 +190 184 +68 69 +129 42 +129 92 +129 106 +50 112 +2 196 +177 101 +133 91 +122 185 +66 105 +131 180 +150 56 +88 183 +156 191 +28 115 +53 91 +158 127 +16 160 +54 43 +134 132 +44 84 +179 190 +161 28 +59 179 +60 34 +96 3 +169 86 +184 71 +181 113 +105 115 +126 58 +64 153 +127 37 +35 149 +12 124 +148 199 +17 196 +170 38 +160 57 +5 98 +119 176 +11 119 +102 121 +159 36 +171 92 +46 161 +183 82 +25 62 +141 181 +189 39 +23 198 +124 131 +30 114 +156 106 +3 137 +121 130 +149 59 +26 185 +134 161 +1 195 +151 21 +90 185 +103 26 +48 28 +99 114 +187 128 +137 21 +150 198 +30 198 +77 146 +25 157 +172 112 +42 199 +167 181 +32 26 +71 46 +136 9 +160 54 +105 149 +148 1 +191 174 +132 99 +52 158 +6 94 +78 96 +192 118 +137 183 +61 82 +186 71 +118 195 +93 157 +113 155 +179 167 +165 161 +31 97 +23 127 +38 108 +148 79 +40 21 +62 111 +9 177 +99 147 +15 103 +91 183 +26 66 +193 148 +24 96 +47 190 +58 110 +64 164 +149 182 +182 17 +120 134 +89 7 +132 140 +28 117 +14 10 +90 25 +148 29 +156 36 +13 91 +197 157 +21 199 +38 109 +182 197 +185 25 +106 76 +191 86 +44 18 +64 140 +51 6 +81 151 +48 9 +101 33 +154 12 +114 135 +3 21 +168 20 +43 184 +162 2 +73 186 +15 167 +42 44 +128 23 +150 200 +44 141 +18 61 +80 58 +160 75 +87 76 +126 128 +10 77 +42 37 +70 160 +134 143 +104 99 +102 138 +41 154 +190 74 +45 191 +32 143 +107 142 +104 25 +190 24 +55 124 +92 17 +4 103 +30 167 +199 198 +35 12 +2 24 +158 168 +38 192 +11 100 +37 108 +33 12 +171 57 +183 86 +144 190 +66 171 +181 138 +17 147 +137 155 +138 86 +14 4 +141 52 +142 59 +64 98 +158 22 +122 35 +83 13 +114 81 +122 172 +117 21 +1 68 +7 136 +147 15 +2 142 +22 60 +83 56 +148 54 +23 16 +14 34 +93 194 +120 65 +189 20 +92 101 +147 57 +163 104 +190 3 +100 117 +128 70 +178 61 +101 197 +100 110 +93 24 +139 9 +94 113 +73 90 +65 63 +162 112 +73 85 +113 183 +159 76 +124 117 +126 104 +107 108 +66 154 +137 36 +169 184 +153 178 +108 29 +110 5 +107 97 +184 163 +63 80 +102 68 +93 70 +165 63 +170 3 +198 62 +26 121 +16 47 +54 152 +104 2 +96 41 +156 154 +46 42 +118 150 +97 95 +183 148 +11 97 +133 33 +10 18 +109 133 +27 85 +20 134 +140 89 +47 86 +126 195 +163 159 +197 90 +154 67 +183 62 +133 97 +10 52 +171 104 +163 78 +93 56 +33 159 +81 178 +156 30 +62 117 +37 8 +129 110 +175 170 +16 71 +18 153 +197 120 +67 3 +29 48 +86 49 +105 114 +96 14 +42 45 +183 21 +120 61 +181 185 +62 7 +24 135 +181 15 +91 48 +150 17 +106 37 +99 185 +49 43 +103 3 +110 27 +195 163 +37 146 +70 87 +85 37 +156 159 +91 105 +32 170 +171 42 +52 61 +102 2 +111 124 +12 190 +196 171 +169 198 +138 112 +33 129 +79 118 +151 31 +74 94 +56 102 +79 27 +173 174 +6 195 +3 142 +89 67 +137 128 +8 142 +110 59 +77 175 +181 111 +107 149 +125 121 +186 52 +54 163 +10 74 +185 182 +198 154 +58 130 +154 135 +13 163 +152 136 +35 178 +174 191 +190 177 +183 106 +136 200 +34 113 +18 6 +58 48 +3 16 +94 196 +31 131 +61 192 +12 8 +137 129 +117 69 +43 162 +120 91 +52 44 +25 99 +169 173 +126 17 +170 6 +84 4 +40 149 +111 186 +73 52 +119 146 +46 116 +42 152 +21 19 +29 26 +22 125 +84 163 +34 143 +14 157 +76 192 +177 165 +135 152 +139 19 +57 110 +112 170 +161 58 +94 90 +165 37 +138 192 +135 167 +165 65 +24 119 +171 180 +47 54 +71 162 +75 47 +111 131 +122 110 +135 133 +13 151 +58 117 +76 52 +183 125 +196 9 +43 15 +77 56 +58 153 +22 153 +109 4 +57 61 +69 144 +161 177 +113 153 +185 138 +136 191 +168 86 +73 41 +146 17 +120 110 +169 154 +54 134 +55 176 +18 57 +124 87 +95 30 +128 177 +83 72 +197 36 +4 68 +153 148 +177 125 +183 29 +91 143 +57 1 +126 43 +12 138 +43 113 +150 38 +22 138 +168 137 +187 195 +172 89 +147 135 +164 64 +127 177 +74 13 +114 68 +152 162 +182 21 +101 40 +138 133 +101 131 +15 162 +179 172 +43 58 +154 132 +56 22 +128 44 +9 59 +25 146 +6 49 +185 69 +178 32 +95 131 +95 24 +74 155 +69 62 +2 58 +28 136 +74 32 +87 153 +145 122 +134 96 +8 46 +134 54 +38 143 +19 198 +105 36 +169 27 +3 124 +106 45 +152 81 +130 81 +23 137 +45 41 +143 46 +130 132 +26 147 +4 50 +14 67 +136 64 +42 172 +89 139 +125 19 +16 8 +110 62 +15 37 +14 138 +79 193 +31 185 +62 88 +2 186 +146 8 +78 4 +45 164 +75 189 +183 76 +36 32 +191 181 +119 154 +174 104 +34 171 +112 135 +59 4 +38 67 +171 123 +90 23 +164 43 +93 19 +59 124 +122 197 +24 71 +30 79 +163 196 +175 174 +84 2 +57 182 +5 99 +65 116 +13 66 +27 127 +33 62 +63 199 +183 178 +9 73 +149 162 +103 125 +154 52 +115 157 +111 153 +37 189 +190 62 +200 97 +152 70 +152 23 +185 105 +65 96 +148 172 +142 72 +120 195 +101 109 +84 20 +113 35 +145 12 +137 110 +106 60 +60 163 +49 59 +182 1 +33 73 +68 112 +50 143 +132 148 +118 158 +133 188 +46 87 +187 27 +6 147 +13 157 +73 42 +33 130 +39 14 +41 77 +149 51 +105 32 +68 179 +110 19 +65 52 +188 111 +37 96 +88 172 +178 197 +72 97 +44 59 +35 23 +28 78 +141 93 +55 3 +127 187 +76 37 +174 61 +131 48 +85 131 +170 130 +79 72 +4 83 +58 69 +136 46 +178 179 +100 63 +26 44 +21 25 +96 46 +9 58 +52 51 +78 173 +174 54 +16 28 +170 104 +159 190 +164 30 +16 185 +43 192 +72 79 +124 82 +198 21 +131 74 +21 171 +21 108 +111 12 +57 139 +187 158 +40 2 +128 11 +181 84 +73 173 +80 122 +173 187 +49 197 +109 14 +123 60 +19 149 +53 177 +35 189 +21 94 +45 19 +17 43 +136 57 +83 178 +11 88 +190 5 +12 131 +198 105 +15 150 +62 162 +171 78 +28 141 +17 125 +148 124 +109 135 +4 34 +175 69 +52 153 +184 39 +174 92 +35 8 +93 59 +178 36 +193 157 +183 122 +3 49 +29 181 +28 89 +93 122 +195 114 +83 132 +87 188 +79 3 +163 29 +74 138 +125 157 +180 17 +179 171 +197 156 +60 111 +123 141 +48 61 +43 198 +71 110 +82 100 +76 4 +26 68 +37 93 +109 10 +55 41 +147 77 +86 137 +87 95 +90 87 +70 137 +50 37 +56 3 +1 30 +72 49 +49 152 +71 183 +115 178 +52 129 +71 190 +72 190 +199 108 +131 19 +148 138 +120 52 +143 18 +170 117 +61 198 +187 45 +61 174 +175 65 +173 191 +75 46 +168 130 +41 150 +140 136 +48 10 +93 173 +139 69 +169 78 +81 51 +19 53 +55 91 +53 36 +162 168 +77 47 +112 177 +184 174 +196 200 +85 149 +101 45 +134 200 +132 164 +29 38 +143 171 +156 75 +36 140 +66 17 +3 95 +9 137 +17 105 +124 19 +95 186 +176 125 +158 187 +9 139 +60 123 +111 73 +86 50 +136 111 +120 41 +127 129 +199 116 +182 123 +129 56 +192 157 +29 179 +162 153 +177 26 +28 30 +64 59 +64 144 +135 164 +146 27 +67 21 +109 24 +74 53 +151 198 +147 129 +67 105 +180 113 +32 21 +55 27 +45 8 +96 101 +105 63 +133 21 +65 45 +169 70 +31 72 +121 185 +113 128 +167 193 +11 178 +116 44 +145 95 +60 90 +179 183 +149 57 +9 46 +102 64 +62 144 +110 179 +115 108 +29 175 +20 15 +23 110 +196 43 +183 145 +129 39 +165 192 +106 84 +195 155 +144 56 +152 21 +51 47 +109 72 +2 108 +7 69 +38 47 +120 193 +68 52 +1 157 +62 120 +77 95 +122 45 +174 40 +195 85 +55 170 +120 100 +156 149 +165 196 +142 99 +46 36 +200 166 +135 123 +196 80 +133 142 +141 102 +139 145 +172 138 +50 182 +11 120 +132 39 +8 22 +140 104 +173 102 +43 151 +39 123 +95 102 +95 11 +19 4 +92 79 +93 57 +128 30 +199 62 +140 153 +179 187 +154 13 +87 59 +75 110 +189 85 +60 8 +169 58 +196 2 +10 110 +190 151 +65 42 +181 106 +194 121 +35 96 +119 140 +99 47 +152 95 +180 96 +94 53 +131 41 +170 68 +52 145 +93 150 +41 198 +197 122 +144 21 +159 196 +56 149 +200 59 +156 112 +64 18 +13 187 +31 93 +50 88 +193 117 +122 124 +177 36 +103 140 +81 28 +170 60 +47 142 +34 175 +88 161 +41 29 +17 157 +13 19 +133 86 +19 196 +18 50 +145 94 +85 2 +161 148 +120 40 +83 144 +39 112 +102 41 +21 154 +50 130 +51 177 +197 12 +58 145 +102 184 +84 80 +76 32 +171 148 +18 83 +158 176 +21 85 +167 178 +2 56 +45 13 +42 160 +130 180 +129 148 +142 77 +197 68 +13 12 +184 193 +48 27 +135 57 +36 112 +42 112 +129 5 +77 39 +69 169 +155 50 +131 145 +59 1 +156 197 +170 30 +44 137 +18 110 +131 24 +56 63 +36 135 +162 23 +132 160 +157 135 +48 53 +19 175 +12 194 +3 105 +13 38 +31 13 +141 149 +115 167 +140 186 +37 13 +101 149 +174 168 +45 196 +186 148 +124 64 +88 26 +111 72 +92 102 +146 199 +32 47 +39 146 +17 128 +69 162 +50 65 +178 175 +69 182 +57 135 +93 163 +14 50 +167 64 +192 114 +86 44 +167 29 +74 71 +2 176 +68 99 +117 6 +76 65 +191 137 +199 7 +165 167 +143 26 +161 129 +6 167 +150 82 +185 187 +77 151 +69 15 +13 107 +15 115 +131 94 +119 158 +108 85 +17 71 +113 195 +130 36 +93 186 +109 89 +7 14 +120 43 +35 120 +181 97 +24 22 +117 31 +8 84 +121 149 +106 101 +109 173 +98 139 +175 182 +144 99 +38 98 +23 106 +16 88 +129 186 +197 151 +3 74 +193 195 +88 95 +101 176 +187 6 +91 153 +49 144 +122 146 +99 125 +100 132 +83 137 +98 94 +45 88 +8 121 +134 13 +125 165 +34 4 +82 102 +163 175 +101 19 +10 11 +82 152 +22 43 +152 119 +13 58 +183 79 +93 167 +88 166 +167 149 +27 172 +75 62 +120 42 +42 129 +80 51 +115 142 +111 79 +24 141 +16 40 +122 141 +79 4 +186 162 +190 110 +191 63 +56 194 +144 185 +108 38 +137 75 +6 121 +23 170 +74 83 +172 157 +144 198 +76 149 +158 48 +98 136 +137 101 +8 70 +119 142 +130 28 +140 100 +190 84 +165 187 +153 46 +187 72 +54 35 +128 148 +116 73 +147 89 +32 37 +138 151 +69 80 +170 194 +174 160 +144 30 +56 166 +120 2 +58 49 +145 59 +141 169 +25 49 +92 9 +185 170 +160 9 +35 41 +121 110 +66 186 +84 111 +147 142 +175 44 +177 92 +129 108 +119 73 +96 36 +121 151 +156 25 +20 90 +73 62 +56 62 +116 29 +20 115 +19 116 +167 195 +105 50 +96 60 +72 133 +36 195 +157 65 +145 81 +170 54 +56 116 +26 1 +11 55 +64 172 +1 45 +138 17 +85 10 +59 183 +29 7 +21 63 +93 46 +150 29 +165 191 +56 171 +170 58 +138 49 +52 185 +18 120 +15 34 +55 111 +161 35 +186 120 +194 148 +186 133 +91 163 +56 97 +179 192 +196 71 +62 26 +140 90 +68 27 +42 189 +85 1 +136 8 +56 38 +95 192 +107 21 +131 189 +200 96 +44 93 +161 147 +167 144 +56 188 +129 137 +110 193 +57 178 +166 34 +64 123 +137 158 +26 95 +47 9 +177 116 +23 188 +113 34 +106 194 +164 135 +100 72 +168 136 +1 109 +140 66 +21 158 +157 116 +118 106 +192 110 +99 195 +131 108 +183 113 +51 20 +81 17 +176 93 +140 37 +112 150 +137 19 +35 30 +168 131 +77 162 +61 136 +121 12 +55 175 +181 69 +157 69 +73 12 +65 191 +89 34 +108 69 +139 49 +38 75 +70 35 +40 165 +39 122 +191 192 +77 12 +103 86 +92 12 +85 46 +141 76 +7 4 +77 124 +131 104 +132 97 +42 56 +122 77 +48 31 +114 188 +192 79 +105 165 +72 62 +29 98 +43 112 +119 156 +90 14 +151 90 +170 65 +75 140 +115 30 +119 184 +61 26 +102 177 +131 4 +157 76 +20 14 +180 166 +141 128 +196 134 +40 43 +195 8 +45 141 +112 77 +159 134 +45 193 +196 127 +172 118 +190 57 +157 55 +186 27 +196 104 +115 126 +198 40 +6 104 +99 81 +31 56 +41 182 +183 156 +52 31 +80 144 +120 117 +57 97 +106 184 +71 109 +58 89 +145 89 +93 126 +124 163 +194 58 +130 70 +102 145 +3 81 +122 34 +101 55 +145 14 +14 16 +46 200 +1 38 +75 53 +139 99 +84 37 +139 168 +39 189 +188 22 +112 97 +72 191 +55 166 +185 64 +26 156 +64 28 +168 92 +102 167 +196 64 +173 135 +70 146 +80 105 +134 81 +152 60 +33 114 +11 80 +102 9 +143 174 +199 102 +149 132 +170 146 +79 92 +32 31 +145 7 +117 190 +156 51 +189 194 +95 108 +80 142 +5 137 +199 101 +127 146 +93 71 +162 150 +54 97 +155 45 +158 94 +51 122 +81 105 +34 146 +194 11 +90 157 +194 120 +89 66 +128 86 +22 23 +94 64 +60 144 +18 175 +144 167 +111 116 +152 74 +35 44 +199 74 +131 47 +131 198 +188 51 +147 96 +99 143 +132 55 +163 5 +93 42 +141 190 +125 179 +125 42 +133 161 +101 136 +120 33 +117 35 +194 136 +173 151 +70 24 +175 10 +199 186 +24 150 +32 153 +148 106 +169 40 +131 190 +187 5 +13 166 +157 64 +116 122 +153 52 +1 105 +2 25 +41 74 +73 68 +182 188 +97 73 +123 81 +65 1 +151 43 +100 133 +137 66 +22 146 +176 179 +170 169 +191 155 +28 36 +40 148 +44 111 +159 147 +86 102 +79 64 +97 158 +129 30 +171 37 +38 174 +50 4 +118 73 +86 93 +23 30 +78 108 +131 83 +194 31 +163 53 +72 7 +140 3 +138 75 +86 62 +164 61 +55 13 +104 120 +162 148 +57 112 +109 142 +118 91 +7 26 +76 23 +79 104 +5 129 +38 113 +40 79 +135 153 +158 72 +118 192 +178 158 +175 116 +78 80 +123 179 +124 47 +200 181 +6 61 +74 115 +9 85 +116 135 +156 140 +88 123 +127 30 +73 143 +187 96 +86 61 +16 171 +131 38 +162 103 +191 134 +108 92 +7 41 +144 62 +9 65 +36 43 +81 10 +21 60 +200 50 +196 161 +153 172 +81 144 +122 168 +182 4 +2 134 +150 133 +98 112 +6 123 +1 26 +30 143 +188 193 +140 80 +199 185 +46 99 +66 89 +94 84 +25 113 +109 138 +103 168 +90 171 +165 146 +39 27 +3 123 +74 147 +158 29 +46 6 +132 20 +197 183 +79 181 +131 30 +82 27 +110 152 +78 1 +85 17 +95 100 +144 100 +181 33 +123 38 +95 147 +156 193 +200 26 +132 54 +111 164 +185 152 +158 67 +71 40 +28 114 +160 64 +70 10 +58 100 +50 128 +55 46 +103 186 +92 193 +76 168 +44 67 +127 12 +167 124 +157 185 +129 177 +161 24 +163 90 +172 169 +167 55 +104 152 +146 171 +44 19 +20 9 +102 188 +65 144 +113 129 +192 53 +61 78 +28 177 +55 10 +103 171 +137 116 +195 131 +117 53 +20 86 +137 120 +159 43 +92 106 +104 196 +141 101 +38 76 +99 199 +146 18 +160 124 +194 65 +137 145 +74 129 +192 147 +44 159 +152 87 +99 73 +107 126 +169 190 +175 199 +73 134 +172 65 +172 187 +129 80 +47 42 +130 6 +130 188 +21 95 +81 35 +30 26 +144 126 +162 127 +123 42 +9 163 +22 167 +164 80 +58 51 +146 124 +147 120 +98 145 +65 19 +78 33 +141 36 +171 24 +91 71 +189 72 +180 52 +198 61 +123 1 +88 137 +198 126 +8 168 +142 166 +28 199 +54 24 +27 49 +121 184 +83 179 +28 22 +195 5 +179 193 +80 37 +110 101 +112 70 +4 109 +109 176 +24 112 +1 174 +145 192 +183 107 +76 59 +159 167 +91 64 +6 27 +45 60 +21 142 +139 123 +68 1 +188 1 +48 93 +12 125 +117 118 +102 166 +29 104 +54 147 +135 178 +80 10 +35 131 +188 185 +162 145 +36 86 +142 16 +95 145 +99 165 +99 79 +114 32 +66 1 +28 67 +162 133 +122 191 +77 155 +125 50 +62 122 +79 135 +2 135 +84 123 +90 15 +190 154 +138 123 +75 48 +51 69 +114 36 +19 163 +17 176 +186 118 +23 47 +99 93 +62 64 +43 88 +174 130 +18 65 +18 30 +130 76 +54 32 +61 69 +69 167 +3 157 +171 115 +12 185 +126 102 +117 161 +184 122 +48 46 +195 61 +73 169 +106 16 +175 112 +89 88 +99 56 +114 153 +18 90 +70 2 +2 20 +59 102 +43 129 +138 74 +162 27 +151 114 +54 151 +90 49 +142 179 +184 21 +5 185 +75 31 +88 109 +82 85 +42 179 +73 43 +162 189 +179 14 +56 31 +188 64 +60 32 +108 168 +105 150 +41 4 +77 7 +38 34 +141 91 +196 122 +25 137 +166 150 +49 73 +187 12 +69 48 +164 179 +42 38 +24 47 +131 98 +188 71 +116 52 +178 83 +171 179 +183 133 +140 77 +103 41 +50 195 +64 75 +62 39 +26 89 +109 92 +154 145 +52 48 +158 83 +189 106 +84 65 +59 140 +62 174 +82 21 +149 97 +171 118 +186 119 +79 162 +178 124 +51 90 +185 196 +135 103 +81 143 +35 177 +119 122 +102 106 +90 167 +60 149 +177 189 +66 44 +177 190 +151 137 +165 144 +130 96 +100 53 +152 112 +104 36 +142 6 +78 17 +24 79 +11 173 +162 152 +199 188 +194 166 +120 103 +197 13 +56 150 +124 2 +154 11 +140 87 +3 23 +89 98 +129 140 +24 53 +72 91 +47 85 +28 153 +27 151 +100 156 +107 42 +79 23 +101 56 +24 87 +109 169 +11 46 +6 79 +102 135 +200 37 +134 152 +78 63 +52 167 +193 168 +6 34 +96 173 +41 33 +57 2 +102 199 +127 52 +36 10 +71 33 +77 176 +132 107 +70 149 +19 70 +30 138 +21 116 +25 64 +35 92 +140 2 +154 167 +186 97 +131 182 +84 192 +7 174 +79 8 +16 81 +152 167 +98 69 +171 113 +8 146 +106 126 +68 89 +176 186 +17 4 +170 116 +143 149 +191 139 +168 7 +183 151 +137 47 +7 163 +149 73 +101 102 +191 55 +126 143 +197 78 +96 139 +183 200 +58 105 +198 133 +150 46 +83 165 +140 79 +165 197 +37 11 +173 32 +9 99 +37 6 +32 22 +185 92 +139 86 +66 20 +198 47 +129 102 +16 156 +67 104 +82 163 +180 158 +130 111 +72 176 +157 16 +129 84 +129 199 +178 72 +199 161 +153 179 +127 88 +122 26 +11 115 +34 77 +182 171 +185 13 +88 17 +93 189 +125 118 +187 69 +10 102 +5 7 +154 133 +169 3 +131 119 +159 163 +190 200 +4 104 +176 2 +56 134 +5 128 +109 120 +20 30 +131 45 +79 160 +15 140 +75 98 +89 167 +38 101 +184 166 +130 157 +130 186 +61 37 +191 74 +127 68 +101 168 +82 186 +176 195 +161 184 +188 178 +106 38 +187 106 +153 117 +106 48 +21 178 +81 174 +147 114 +25 181 +53 146 +10 138 +97 153 +126 145 +61 88 +133 182 +113 127 +79 11 +29 168 +8 108 +169 188 +50 12 +133 189 +131 100 +52 151 +126 8 +121 77 +42 109 +162 164 +94 95 +109 50 +194 112 +123 197 +174 170 +50 48 +152 91 +120 76 +167 32 +117 43 +125 53 +16 68 +111 23 +46 132 +196 77 +24 116 +131 39 +151 104 +182 93 +136 75 +191 89 +167 148 +176 29 +135 61 +71 43 +102 151 +182 181 +149 102 +32 123 +127 77 +18 154 +169 68 +15 109 +127 87 +134 84 +88 198 +49 86 +34 80 +99 55 +17 174 +26 166 +166 123 +95 49 +138 161 +49 199 +160 23 +197 99 +190 49 +55 97 +78 2 +108 148 +117 88 +104 181 +59 95 +184 75 +16 163 +195 40 +169 45 +157 71 +148 102 +189 52 +50 197 +78 131 +145 74 +175 152 +31 101 +72 30 +116 114 +128 198 +193 189 +84 114 +146 60 +158 140 +178 159 +5 26 +192 15 +124 108 +149 166 +128 16 +62 143 +195 34 +48 8 +30 162 +4 42 +186 183 +61 57 +32 129 +113 100 +4 102 +4 173 +146 128 +129 6 +40 74 +159 124 +69 151 +106 160 +52 42 +107 99 +5 55 +57 181 +182 152 +47 171 +22 164 +165 162 +137 62 +184 151 +138 70 +194 144 +167 57 +61 19 +174 14 +157 46 +181 8 +93 10 +22 181 +161 118 +61 42 +15 94 +175 74 +113 29 +139 30 +103 31 +164 180 +170 39 +87 162 +127 111 +196 53 +135 51 +95 126 +52 192 +33 102 +77 190 +100 108 +42 103 +126 54 +166 29 +121 40 +2 109 +13 46 +140 180 +41 37 +107 92 +34 190 +30 22 +75 123 +111 148 +123 87 +78 185 +100 40 +136 24 +85 189 +59 125 +136 59 +52 71 +81 190 +76 179 +66 65 +50 44 +5 27 +52 174 +176 79 +60 130 +166 144 +191 57 +59 20 +33 160 +94 3 +95 125 +183 59 +23 126 +121 93 +5 16 +104 113 +158 50 +64 182 +62 188 +126 137 +185 86 +51 24 +162 88 +55 34 +4 197 +58 73 +181 32 +166 70 +133 26 +147 187 +147 177 +104 126 +84 61 +145 143 +80 56 +12 68 +93 166 +55 64 +180 6 +1 3 +173 152 +59 78 +153 175 +95 13 +113 47 +196 185 +99 16 +92 104 +168 170 +12 76 +51 88 +55 194 +69 54 +143 96 +75 190 +197 44 +120 173 +97 129 +85 139 +7 94 +177 168 +119 129 +30 103 +156 81 +174 134 +75 99 +87 79 +174 185 +63 9 +159 71 +120 85 +124 154 +162 188 +20 7 +175 93 +64 106 +26 151 +76 78 +106 117 +51 52 +111 132 +21 20 +148 182 +138 165 +113 172 +136 25 +174 100 +7 84 +10 157 +69 70 +183 161 +32 102 +138 104 +41 170 +111 125 +118 197 +22 105 +47 162 +120 28 +77 184 +133 47 +14 3 +169 46 +172 200 +178 168 +47 122 +117 198 +23 35 +119 37 +93 5 +62 135 +174 69 +70 121 +147 16 +8 113 +189 131 +43 144 +199 137 +180 24 +92 111 +76 15 +10 4 +44 143 +82 39 +118 7 +8 116 +141 40 +61 46 +73 65 +64 51 +177 12 +90 75 +95 153 +154 77 +26 127 +31 146 +1 122 +168 35 +190 163 +2 155 +3 138 +144 28 +126 139 +117 138 +133 77 +67 150 +178 42 +139 169 +176 33 +41 156 +106 158 +30 33 +195 16 +60 184 +48 5 +163 151 +132 196 +181 145 +172 101 +106 103 +17 182 +10 9 +30 124 +120 3 +25 168 +60 194 +164 143 +59 142 +84 117 +79 20 +106 185 +54 177 +130 75 +34 55 +58 82 +167 52 +19 95 +73 77 +65 21 +15 119 +124 46 +131 82 +66 180 +61 70 +167 59 +71 111 +133 49 +48 26 +197 69 +39 80 +120 183 +170 174 +181 85 +7 70 +72 8 +94 15 +94 32 +123 117 +145 37 +122 116 +33 163 +46 47 +98 127 +186 89 +110 187 +123 49 +70 40 +149 143 +157 31 +160 157 +90 6 +197 1 +93 116 +69 82 +74 72 +23 156 +176 31 +26 53 +124 118 +38 79 +99 94 +161 140 +111 69 +15 130 +161 73 +21 111 +55 40 +118 35 +36 3 +192 145 +162 26 +24 157 +28 90 +117 16 +197 83 +131 155 +153 164 +197 30 +59 89 +188 154 +169 103 +142 90 +172 94 +66 106 +174 16 +183 153 +97 178 +8 175 +106 2 +102 57 +154 1 +27 23 +29 56 +88 179 +165 95 +117 73 +29 158 +190 33 +58 77 +76 129 +38 6 +145 76 +145 180 +123 180 +145 6 +1 86 +86 74 +20 165 +24 55 +169 149 +185 22 +128 182 +148 59 +51 61 +155 124 +59 116 +165 99 +185 57 +153 121 +135 8 +167 120 +134 168 +30 95 +61 15 +92 189 +33 108 +63 76 +98 180 +187 169 +143 193 +137 135 +47 78 +143 107 +115 13 +76 174 +127 67 +116 156 +99 118 +1 36 +68 118 +191 97 +164 36 +29 196 +65 50 +176 196 +146 189 +143 84 +1 191 +113 14 +149 190 +108 143 +141 59 +3 130 +52 172 +44 184 +7 30 +127 99 +12 29 +94 198 +162 171 +95 69 +115 35 +40 139 +59 22 +107 144 +81 107 +17 178 +22 40 +17 10 +73 185 +105 66 +32 18 +41 13 +103 162 +56 29 +34 173 +175 71 +41 199 +156 38 +148 174 +157 191 +143 138 +111 134 +125 57 +24 125 +74 60 +173 150 +94 86 +143 159 +188 36 +61 148 +145 164 +40 168 +80 193 +76 172 +172 20 +40 5 +22 85 +15 9 +187 1 +188 179 +61 92 +88 47 +153 13 +121 171 +15 98 +178 172 +82 91 +103 128 +22 129 +90 4 +8 19 +79 177 +138 156 +121 5 +142 158 +11 166 +131 177 +88 124 +48 56 +135 190 +78 192 +88 160 +7 18 +124 130 +4 181 +25 165 +105 47 +143 164 +21 89 +85 188 +127 168 +129 151 +101 23 +115 75 +22 126 +8 17 +107 60 +42 35 +63 168 +185 28 +12 151 +108 17 +8 74 +143 180 +185 198 +14 124 +35 62 +122 73 +133 134 +39 144 +141 172 +29 6 +27 83 +57 162 +6 33 +164 186 +128 99 +46 163 +93 137 +152 107 +165 190 +154 63 +170 178 +56 47 +155 1 +67 79 +37 193 +14 23 +188 114 +122 5 +113 65 +71 50 +27 87 +187 141 +8 109 +77 63 +101 141 +63 105 +116 197 +149 74 +38 132 +167 108 +28 95 +37 165 +88 132 +28 119 +81 171 +184 190 +112 117 +54 144 +120 145 +87 37 +105 185 +2 18 +146 160 +182 58 +138 124 +75 192 +115 88 +56 165 +73 154 +61 99 +8 12 +131 1 +45 171 +57 120 +17 172 +158 96 +43 188 +80 12 +56 159 +100 148 +4 200 +189 92 +62 165 +174 190 +3 191 +8 117 +152 62 +178 156 +100 18 +162 119 +194 73 +4 148 +51 118 +10 143 +153 86 +60 190 +166 32 +143 37 +42 66 +46 45 +50 59 +88 186 +102 107 +8 119 +143 126 +154 200 +93 154 +56 16 +109 195 +41 81 +77 141 +173 99 +21 97 +54 119 +24 144 +77 32 +145 119 +131 85 +113 68 +198 150 +94 137 +73 97 +112 174 +159 64 +82 65 +105 179 +32 30 +141 83 +94 73 +161 2 +89 25 +46 130 +188 10 +76 152 +182 51 +137 172 +10 5 +166 63 +44 145 +66 115 +47 68 +15 100 +163 128 +82 155 +46 13 +99 26 +22 136 +144 37 +4 138 +143 194 +197 65 +195 20 +115 192 +170 49 +45 5 +79 166 +94 142 +51 27 +1 179 +184 198 +112 113 +56 120 +55 23 +60 132 +145 33 +137 95 +54 19 +70 193 +100 46 +200 81 +194 178 +37 118 +120 89 +197 168 +29 117 +21 151 +147 3 +147 170 +75 138 +63 147 +128 118 +174 94 +104 80 +123 172 +18 95 +192 83 +37 109 +81 103 +38 127 +185 162 +195 192 +12 97 +49 156 +77 42 +163 160 +193 164 +80 152 +171 143 +102 137 +193 124 +97 47 +172 130 +36 103 +114 62 +182 22 +46 98 +80 36 +44 168 +24 168 +126 111 +57 73 +148 8 +47 69 +130 19 +146 139 +3 29 +83 192 +71 129 +78 59 +137 4 +142 9 +93 151 +21 75 +87 110 +48 52 +172 140 +146 42 +121 115 +85 102 +137 49 +145 138 +16 151 +19 3 +82 200 +67 171 +97 165 +47 191 +103 54 +200 163 +146 63 +199 45 +199 105 +101 172 +118 121 +45 1 +69 75 +191 39 +44 32 +164 44 +147 148 +53 114 +130 160 +170 42 +181 175 +195 182 +71 12 +82 59 +59 158 +20 168 +178 109 +69 170 +68 33 +46 100 +199 29 +185 54 +101 76 +8 15 +195 110 +16 129 +198 110 +31 61 +38 63 +127 174 +104 134 +72 121 +118 63 +107 192 +187 16 +165 135 +175 14 +137 52 +158 18 +145 60 +14 116 +150 152 +32 88 +192 106 +146 182 +114 20 +200 70 +5 180 +96 20 +114 149 +33 186 +9 39 +3 36 +36 106 +59 168 +175 150 +54 47 +112 25 +125 144 +141 10 +31 10 +89 199 +123 6 +160 176 +101 160 +173 8 +84 97 +191 85 +79 39 +192 107 +151 81 +94 120 +146 178 +48 133 +45 85 +6 67 +39 150 +106 196 +62 154 +140 131 +58 121 +97 81 +195 101 +99 179 +70 172 +32 48 +149 122 +186 37 +112 181 +72 12 +21 173 +167 161 +113 198 +70 30 +132 81 +116 11 +199 162 +38 145 +34 140 +199 172 +107 154 +108 98 +25 187 +79 16 +41 126 +31 44 +193 47 +175 37 +197 5 +182 12 +159 164 +87 168 +161 198 +144 87 +31 132 +139 66 +142 137 +45 70 +30 112 +162 7 +36 125 +15 47 +56 74 +166 31 +190 124 +92 134 +40 72 +14 109 +190 167 +187 119 +50 19 +148 27 +127 63 +14 70 +185 15 +9 129 +172 193 +190 32 +58 98 +38 29 +144 22 +176 54 +187 14 +1 130 +22 88 +90 149 +136 131 +73 138 +177 183 +60 147 +168 150 +20 191 +10 193 +109 102 +48 163 +164 16 +87 163 +104 87 +115 97 +77 153 +49 20 +10 194 +47 12 +142 123 +119 24 +157 53 +80 118 +138 109 +200 94 +199 79 +87 26 +174 8 +44 88 +178 191 +120 59 +36 58 +165 198 +186 29 +150 8 +31 91 +177 58 +66 141 +36 127 +2 141 +154 79 +161 189 +183 136 +119 138 +141 2 +110 180 +56 5 +10 106 +133 190 +119 3 +34 126 +55 86 +161 99 +87 140 +18 43 +51 110 +110 174 +83 48 +38 135 +64 128 +196 63 +24 175 +109 119 +185 141 +103 129 +95 70 +181 22 +84 60 +81 77 +31 48 +12 32 +110 157 +37 154 +48 102 +92 126 +44 144 +70 127 +126 12 +200 8 +121 147 +54 70 +186 196 +103 159 +173 40 +184 35 +133 23 +75 149 +25 21 +37 19 +187 125 +29 24 +89 5 +176 80 +152 33 +168 152 +7 127 +191 145 +114 172 +200 178 +136 18 +86 82 +129 9 +187 73 +134 93 +33 153 +179 80 +109 65 +51 104 +162 42 +97 71 +161 50 +67 194 +124 144 +152 84 +77 179 +129 99 +6 177 +76 49 +9 157 +125 142 +95 148 +46 140 +75 34 +175 196 +174 96 +105 147 +136 22 +47 164 +120 74 +76 103 +113 97 +143 196 +40 11 +146 177 +14 175 +191 45 +172 84 +97 25 +184 161 +188 187 +26 158 +165 114 +73 30 +175 24 +39 154 +65 137 +132 56 +151 167 +133 132 +108 192 +37 116 +92 93 +6 91 +188 172 +114 197 +194 152 +104 195 +62 58 +200 140 +18 190 +48 113 +193 136 +169 91 +46 174 +68 102 +105 172 +194 103 +103 2 +32 112 +185 16 +91 80 +127 133 +42 100 +1 89 +100 113 +79 61 +150 53 +35 101 +153 24 +165 80 +8 92 +117 54 +109 30 +141 68 +162 196 +91 199 +124 88 +60 154 +56 169 +55 102 +103 124 +21 39 +91 78 +100 150 +50 82 +18 179 +45 130 +128 72 +26 106 +101 114 +10 104 +178 29 +54 93 +196 198 +198 157 +81 120 +171 89 +103 176 +25 26 +134 52 +51 128 +78 90 +89 181 +189 177 +165 86 +123 153 +100 85 +134 98 +184 98 +3 12 +79 111 +138 118 +145 28 +99 97 +192 20 +88 25 +126 96 +31 96 +186 184 +32 43 +135 118 +12 166 +187 17 +92 186 +154 102 +70 168 +19 31 +53 52 +3 193 +147 7 +15 138 +162 81 +185 35 +14 71 +64 183 +195 162 +186 140 +178 88 +51 163 +151 36 +158 92 +159 2 +68 114 +158 109 +155 62 +103 22 +54 63 +12 127 +96 43 +151 180 +141 118 +51 43 +190 199 +98 97 +136 147 +3 103 +3 67 +27 57 +172 72 +15 137 +82 34 +64 3 +177 47 +46 111 +113 11 +200 184 +103 110 +161 190 +95 122 +18 78 +157 128 +93 183 +50 47 +27 116 +69 19 +32 34 +13 154 +198 190 +61 170 +28 162 +74 110 +199 84 +97 177 +167 88 +134 25 +133 169 +167 118 +55 187 +147 158 +188 32 +188 37 +40 173 +50 170 +19 169 +59 2 +19 55 +98 111 +19 46 +145 106 +24 176 +2 130 +94 163 +87 6 +199 38 +51 191 +7 147 +40 29 +186 14 +119 195 +30 122 +59 177 +145 80 +158 132 +156 21 +67 113 +26 181 +165 112 +124 128 +93 79 +196 76 +52 22 +71 152 +19 142 +41 164 +161 105 +90 52 +188 189 +136 43 +197 149 +99 140 +78 61 +28 186 +24 20 +45 165 +6 144 +63 7 +78 152 +131 116 +104 32 +181 31 +101 12 +158 30 +53 184 +132 4 +49 153 +49 80 +100 179 +68 128 +198 7 +52 199 +151 9 +98 17 +183 195 +31 53 +105 34 +135 37 +175 193 +162 111 +14 198 +92 20 +111 143 +106 52 +118 86 +67 39 +28 155 +168 46 +120 119 +135 157 +106 149 +103 76 +17 22 +113 8 +107 18 +194 182 +55 181 +41 117 +58 178 +176 39 +49 68 +12 192 +80 184 +13 127 +149 76 +92 14 +148 39 +163 20 +79 200 +17 140 +130 31 +61 17 +174 33 +63 178 +105 60 +22 131 +5 49 +108 178 +53 22 +132 90 +37 90 +200 197 +109 132 +29 145 +178 187 +173 161 +17 130 +22 65 +179 66 +183 193 +7 116 +15 174 +98 92 +120 129 +118 165 +197 51 +116 167 +79 100 +129 111 +192 121 +24 137 +100 186 +80 43 +123 91 +148 170 +133 93 +173 107 +74 137 +183 50 +169 72 +99 11 +81 108 +122 59 +187 2 +56 21 +79 136 +36 169 +112 118 +132 193 +30 47 +166 170 +91 132 +90 80 +125 115 +21 34 +10 119 +105 155 +35 72 +63 68 +74 127 +25 28 +163 166 +13 106 +80 6 +80 192 +18 147 +61 178 +38 96 +61 113 +118 136 +57 143 +131 175 +124 180 +165 87 +97 110 +13 14 +38 35 +30 6 +67 180 +51 39 +157 7 +43 84 +10 105 +152 171 +38 163 +147 198 +148 35 +20 132 +151 130 +107 47 +108 172 +138 101 +115 162 +27 192 +116 110 +71 161 +42 11 +6 176 +99 159 +164 192 +32 119 +113 165 +31 167 +197 128 +93 54 +2 90 +28 185 +197 76 +62 191 +46 193 +16 114 +80 83 +171 75 +147 140 +69 90 +172 115 +67 131 +38 144 +113 115 +33 174 +58 35 +106 177 +166 71 +84 109 +12 98 +149 16 +55 50 +189 1 +23 116 +165 126 +136 95 +51 129 +34 177 +112 171 +60 61 +95 66 +155 14 +72 162 +22 169 +2 157 +119 121 +24 105 +192 170 +100 81 +129 146 +125 48 +147 166 +124 23 +131 195 +129 49 +94 39 +51 125 +99 145 +167 74 +124 152 +94 13 +67 84 +27 35 +100 115 +134 64 +150 36 +69 187 +99 113 +195 147 +182 148 +134 63 +150 50 +91 154 +157 32 +158 180 +104 67 +29 3 +154 127 +114 195 +49 40 +41 194 +78 23 +44 161 +111 117 +58 36 +31 145 +133 162 +179 58 +1 9 +19 140 +152 35 +198 185 +57 65 +56 119 +19 25 +91 16 +123 169 +71 38 +161 79 +70 101 +157 42 +164 86 +178 52 +24 62 +23 32 +24 130 +83 39 +27 198 +65 11 +123 156 +57 51 +5 70 +153 27 +52 147 +5 134 +184 58 +187 31 +12 6 +74 46 +158 90 +54 185 +62 13 +24 21 +174 47 +56 49 +164 11 +94 19 +132 88 +85 198 +6 31 +89 38 +2 43 +2 105 +184 44 +30 193 +85 171 +177 161 +101 26 +159 94 +26 7 +41 165 +24 146 +128 160 +107 22 +164 193 +68 170 +136 48 +171 170 +27 8 +63 153 +65 13 +90 45 +192 134 +45 102 +4 52 +148 140 +61 168 +19 146 +20 117 +98 5 +130 99 +71 117 +146 21 +187 111 +145 70 +12 139 +101 82 +154 136 +149 146 +58 190 +2 122 +35 59 +57 55 +146 136 +63 127 +37 153 +184 65 +46 181 +60 38 +89 150 +101 11 +137 78 +102 97 +20 100 +183 41 +184 158 +2 39 +187 90 +5 157 +182 117 +29 126 +181 100 +60 173 +104 167 +76 163 +135 86 +171 138 +109 168 +118 177 +67 117 +197 109 +94 65 +41 92 +142 195 +143 89 +39 125 +165 18 +131 115 +57 142 +82 40 +41 43 +85 15 +167 168 +169 168 +136 132 +130 161 +44 21 +78 70 +39 131 +42 192 +67 60 +91 92 +163 9 +6 173 +69 157 +192 153 +180 93 +177 137 +140 166 +16 195 +15 1 +154 118 +132 173 +194 149 +121 20 +22 17 +180 75 +50 169 +93 178 +123 84 +32 158 +22 93 +193 18 +111 158 +115 73 +35 195 +122 81 +175 96 +136 101 +95 40 +88 15 +41 111 +44 73 +74 21 +12 153 +154 3 +102 128 +51 14 +200 195 +172 64 +82 177 +181 55 +122 58 +62 153 +122 174 +76 29 +20 127 +175 126 +49 136 +94 76 +88 33 +78 40 +47 119 +162 25 +29 45 +164 87 +193 90 +53 97 +33 157 +117 194 +24 12 +84 14 +107 184 +166 7 +88 152 +22 142 +17 112 +178 75 +124 142 +123 57 +164 26 +105 189 +185 91 +125 175 +52 123 +8 196 +107 133 +13 126 +11 176 +181 146 +134 125 +22 158 +170 79 +62 92 +162 73 +162 45 +34 52 +169 153 +12 22 +91 20 +103 91 +48 138 +31 57 +199 83 +111 47 +145 86 +140 71 +188 128 +95 72 +68 86 +156 180 +130 73 +18 119 +150 194 +171 16 +51 94 +146 164 +49 171 +37 178 +197 119 +40 99 +157 111 +154 112 +6 99 +150 144 +8 124 +157 125 +23 18 +66 185 +160 28 +148 87 +108 167 +20 53 +181 45 +12 102 +3 170 +96 120 +62 14 +117 57 +113 141 +93 96 +8 77 +139 26 +73 175 +75 119 +182 157 +156 31 +54 6 +165 153 +162 63 +156 46 +185 18 +151 55 +2 195 +17 11 +18 136 +75 82 +162 102 +105 41 +3 62 +191 124 +65 112 +169 197 +128 37 +171 3 +86 162 +173 28 +89 14 +95 149 +58 85 +190 170 +181 163 +186 10 +121 137 +129 138 +191 75 +44 107 +90 148 +184 90 +91 5 +118 66 +23 51 +87 192 +129 147 +123 175 +76 140 +111 49 +141 150 +145 112 +56 27 +2 154 +7 166 +166 180 +34 91 +128 116 +88 78 +4 1 +88 61 +153 79 +89 60 +93 170 +174 121 +37 151 +113 92 +112 169 +104 174 +83 172 +160 182 +177 17 +144 86 +71 156 +172 78 +18 20 +41 50 +99 196 +115 174 +146 14 +143 48 +9 188 +131 161 +177 157 +143 30 +178 80 +155 46 +122 153 +101 60 +172 104 +98 110 +50 176 +30 115 +107 34 +163 98 +29 143 +190 75 +154 78 +113 163 +189 91 +123 111 +40 125 +165 62 +109 31 +67 163 +192 2 +95 88 +70 43 +28 66 +51 56 +30 106 +124 165 +96 74 +135 58 +84 9 +55 184 +17 162 +66 181 +6 45 +20 96 +44 164 +45 81 +61 182 +144 174 +83 143 +75 121 +42 171 +14 170 +147 118 +70 129 +76 142 +94 148 +172 179 +182 73 +62 79 +82 96 +190 189 +114 47 +38 91 +64 112 +161 159 +95 116 +143 155 +166 91 +105 138 +50 173 +41 109 +73 51 +110 167 +162 116 +54 95 +70 20 +141 147 +13 124 +143 175 +53 142 +111 156 +25 61 +5 127 +132 114 +43 159 +154 189 +100 149 +59 33 +1 141 +67 27 +30 100 +55 144 +105 117 +24 76 +148 53 +155 183 +184 132 +177 6 +94 183 +138 18 +37 132 +89 94 +191 190 +113 194 +71 138 +141 136 +85 161 +98 82 +187 155 +98 162 +38 4 +170 167 +76 180 +186 110 +50 178 +162 194 +4 106 +48 179 +127 24 +105 195 +186 81 +41 80 +8 69 +150 90 +144 172 +110 54 +92 62 +57 41 +158 76 +182 75 +6 15 +20 161 +60 93 +118 54 +134 46 +129 143 +96 197 +121 58 +148 56 +25 171 +82 147 +36 21 +68 155 +28 112 +66 178 +23 52 +89 64 +110 189 +81 114 +158 108 +106 12 +83 7 +32 200 +28 42 +191 38 +122 87 +57 20 +132 147 +88 170 +80 143 +169 148 +14 156 +54 108 +115 29 +48 40 +200 89 +96 193 +118 90 +135 109 +192 4 +88 54 +27 199 +18 178 +23 29 +105 39 +98 187 +89 83 +144 142 +67 9 +59 185 +129 21 +173 175 +58 29 +45 47 +90 31 +105 68 +139 134 +76 1 +185 106 +46 147 +93 3 +101 84 +53 70 +34 154 +49 87 +141 8 +96 27 +199 41 +24 145 +169 183 +3 174 +77 2 +142 198 +21 51 +143 56 +34 58 +188 4 +123 110 +188 73 +61 93 +174 29 +63 78 +187 44 +117 160 +55 69 +101 157 +28 91 +45 192 +142 193 +184 14 +138 58 +53 179 +123 94 +177 100 +126 101 +9 126 +166 88 +140 55 +72 124 +197 23 +39 82 +22 111 +63 8 +104 161 +128 4 +101 113 +53 40 +4 39 +92 116 +113 52 +93 69 +169 54 +49 196 +115 70 +92 24 +9 6 +106 93 +90 199 +51 8 +141 170 +39 88 +116 33 +19 72 +121 190 +139 161 +125 158 +162 135 +180 143 +119 55 +15 139 +103 58 +177 141 +99 136 +64 48 +120 30 +199 197 +62 126 +99 177 +185 131 +34 9 +137 194 +178 5 +161 57 +144 12 +31 9 +133 72 +164 92 +109 17 +139 181 +19 65 +140 64 +104 29 +60 143 +97 90 +24 25 +171 189 +12 37 +17 42 +29 161 +78 77 +58 78 +140 31 +84 168 +105 191 +99 60 +31 11 +121 165 +158 17 +17 15 +82 1 +22 159 +176 34 +65 59 +117 56 +138 4 +109 55 +27 142 +114 109 +21 164 +9 162 +174 136 +27 118 +190 95 +78 34 +179 125 +29 177 +95 150 +172 154 +103 1 +147 154 +133 138 +174 131 +82 15 +65 103 +166 198 +29 41 +28 7 +196 140 +147 185 +40 108 +27 167 +143 29 +159 130 +174 24 +121 144 +189 133 +131 101 +12 150 +130 26 +106 15 +170 90 +128 159 +169 99 +105 110 +17 55 +157 33 +76 127 +21 72 +161 143 +21 103 +20 109 +86 17 +167 90 +25 185 +1 29 +52 80 +9 128 +131 138 +138 187 +10 174 +103 115 +6 84 +141 140 +71 119 +173 9 +93 58 +90 180 +19 155 +79 167 +160 11 +14 169 +62 53 +107 39 +98 8 +19 77 +2 69 +89 120 +100 83 +138 134 +145 111 +97 103 +108 165 +49 92 +167 131 +108 11 +21 78 +125 86 +10 37 +21 109 +78 109 +46 15 +123 133 +25 163 +200 158 +53 47 +21 27 +173 155 +48 117 +31 176 +171 85 +116 46 +33 158 +175 18 +10 90 +190 71 +51 23 +145 96 +22 192 +6 190 +20 139 +102 89 +170 35 +162 195 +71 86 +171 13 +196 41 +46 35 +153 195 +111 70 +193 113 +173 162 +179 19 +73 101 +88 117 +187 173 +102 95 +2 62 +166 27 +181 116 +175 110 +20 58 +75 199 +112 90 +100 158 +5 69 +27 96 +183 70 +158 163 +139 154 +18 26 +91 41 +152 193 +104 3 +144 104 +134 114 +3 188 +50 91 +186 167 +9 193 +181 36 +94 30 +200 20 +28 20 +96 62 +21 5 +178 62 +170 120 +13 114 +85 55 +175 134 +26 84 +43 8 +119 89 +190 69 +71 72 +120 29 +169 146 +169 180 +125 93 +48 81 +125 98 +131 23 +109 53 +23 135 +124 33 +168 179 +30 57 +199 156 +2 16 +158 188 +142 139 +147 18 +132 9 +171 128 +78 56 +21 122 +99 38 +36 170 +177 158 +133 150 +24 10 +158 191 +117 15 +93 47 +56 28 +77 45 +68 185 +170 78 +82 25 +95 117 +90 81 +166 23 +21 55 +121 198 +146 74 +22 101 +36 28 +140 7 +33 195 +66 108 +182 67 +61 147 +188 161 +63 136 +150 184 +127 81 +168 133 +7 110 +177 130 +167 39 +26 14 +91 171 +122 30 +155 44 +20 130 +142 114 +56 53 +15 110 +107 89 +43 186 +49 178 +105 136 +184 156 +109 165 +72 195 +108 117 +38 100 +155 42 +82 176 +6 193 +107 130 +44 39 +73 120 +157 115 +29 15 +67 42 +197 185 +41 19 +19 137 +60 22 +46 58 +156 95 +51 178 +113 134 +112 173 +82 7 +199 200 +34 60 +47 44 +64 61 +104 106 +108 9 +34 76 +152 159 +64 124 +8 127 +194 33 +114 13 +29 70 +19 200 +67 37 +39 52 +9 35 +159 87 +30 64 +140 132 +6 166 +72 70 +105 54 +34 32 +185 200 +108 142 +90 153 +155 38 +3 34 +46 167 +123 154 +13 133 +143 192 +175 84 +96 186 +179 163 +95 175 +130 98 +8 162 +3 70 +32 122 +65 111 +163 118 +172 60 +10 179 +131 87 +96 92 +152 64 +195 111 +62 161 +180 177 +97 190 +71 2 +20 172 +25 47 +113 176 +183 144 +167 151 +73 88 +1 37 +10 109 +98 51 +190 166 +49 76 +183 114 +103 75 +25 161 +43 145 +199 147 +19 108 +116 70 +84 94 +157 80 +161 87 +189 147 +145 135 +135 83 +175 20 +32 11 +157 150 +163 22 +141 45 +2 163 +58 158 +56 111 +134 151 +177 94 +89 46 +157 28 +20 49 +104 28 +198 182 +107 121 +137 170 +94 170 +49 112 +192 146 +138 97 +32 79 +187 79 +14 63 +117 123 +20 174 +79 86 +141 79 +41 189 +185 30 +39 91 +123 150 +181 80 +132 2 +15 146 +18 144 +87 186 +22 97 +81 70 +191 103 +193 14 +78 45 +7 192 +51 50 +25 89 +30 32 +150 97 +89 168 +182 154 +74 160 +140 112 +1 106 +111 170 +199 64 +114 179 +175 82 +176 160 +177 147 +31 107 +151 69 +84 78 +125 77 +118 44 +52 65 +113 101 +46 175 +103 123 +42 181 +171 100 +56 46 +85 130 +110 23 +80 177 +177 129 +156 20 +28 173 +184 188 +174 120 +57 164 +27 108 +116 67 +150 19 +171 173 +133 80 +101 44 +127 48 +5 135 +80 59 +194 10 +71 200 +144 139 +146 26 +7 31 +64 9 +137 14 +19 115 +53 189 +144 200 +126 91 +142 165 +11 138 +176 50 +122 56 +93 27 +122 149 +64 1 +15 152 +66 34 +160 98 +10 20 +18 104 +53 152 +64 125 +25 15 +78 30 +33 175 +166 21 +148 164 +28 51 +160 139 +148 186 +133 76 +159 191 +134 156 +109 23 +147 46 +94 123 +13 180 +172 24 +9 22 +150 64 +114 95 +197 127 +53 173 +178 117 +49 155 +172 88 +20 67 +98 67 +94 25 +144 179 +126 93 +30 94 +179 103 +105 49 +152 170 +141 55 +54 200 +27 62 +53 121 +76 160 +159 197 +178 194 +15 12 +46 54 +146 87 +14 90 +64 139 +107 95 +35 146 +197 10 +28 163 +172 143 +77 97 +142 108 +92 51 +173 134 +13 179 +14 192 +6 23 +157 154 +108 113 +197 37 +137 159 +195 47 +97 57 +123 122 +200 85 +81 165 +171 162 +74 187 +122 128 +149 172 +147 100 +174 111 +43 21 +103 66 +173 38 +39 67 +166 95 +181 157 +197 132 +94 35 +16 196 +14 186 +141 160 +80 93 +67 43 +132 77 +105 46 +195 89 +76 109 +12 155 +32 121 +28 63 +17 138 +37 17 +75 12 +186 154 +149 14 +158 151 +49 194 +109 11 +169 21 +15 105 +75 13 +110 78 +5 58 +61 146 +89 176 +80 57 +183 141 +133 125 +158 115 +3 184 +132 41 +142 135 +8 174 +151 22 +83 33 +94 21 +148 179 +181 44 +71 192 +43 110 +159 3 +47 51 +183 40 +151 52 +74 123 +64 42 +29 63 +31 153 +175 47 +106 22 +7 143 +128 184 +87 174 +91 196 +193 185 +55 7 +40 157 +189 152 +24 59 +167 36 +114 146 +153 165 +176 7 +32 61 +82 57 +85 71 +80 147 +5 131 +192 115 +8 1 +9 180 +18 60 +8 158 +115 198 +81 61 +199 89 +63 119 +34 182 +135 168 +85 129 +128 165 +6 135 +126 51 +106 130 +153 61 +150 26 +120 46 +141 43 +188 23 +82 36 +24 84 +60 198 +76 120 +75 70 +27 7 +138 120 +125 85 +21 3 +158 80 +141 54 +74 156 +9 149 +89 8 +39 109 +140 78 +170 51 +58 174 +89 156 +51 172 +114 107 +106 66 +66 38 +129 1 +153 156 +53 71 +77 197 +27 134 +36 154 +127 50 +1 146 +25 138 +177 186 +130 141 +108 151 +23 70 +79 183 +192 129 +127 123 +99 180 +145 141 +11 56 +109 21 +106 70 +20 110 +87 165 +116 82 +32 8 +97 160 +23 68 +77 65 +58 80 +65 200 +180 110 +183 2 +109 91 +172 23 +64 99 +61 5 +130 145 +22 75 +74 157 +103 165 +85 53 +109 127 +148 17 +154 70 +97 116 +46 188 +104 64 +3 31 +200 104 +5 95 +76 122 +168 197 +155 151 +161 158 +32 2 +142 91 +15 170 +187 38 +105 98 +127 195 +65 93 +145 165 +74 50 +156 186 +144 47 +163 3 +76 105 +142 54 +2 128 +182 142 +68 9 +146 137 +151 84 +92 180 +3 139 +83 169 +197 198 +105 65 +121 187 +45 53 +166 69 +88 106 +28 193 +43 119 +177 49 +188 39 +7 146 +27 131 +19 50 +90 138 +23 12 +36 144 +122 147 +177 66 +143 124 +193 74 +44 79 +155 99 +187 184 +11 19 +73 26 +181 110 +107 123 +20 177 +134 118 +70 116 +114 93 +116 26 +6 87 +190 90 +20 129 +111 157 +84 73 +82 129 +37 80 +168 31 +34 172 +6 28 +147 65 +169 90 +20 91 +67 134 +149 43 +114 67 +114 43 +121 91 +96 78 +155 69 +67 181 +166 101 +116 131 +19 197 +70 119 +6 72 +135 34 +139 152 +95 99 +182 187 +7 97 +112 65 +195 4 +136 51 +27 40 +174 72 +165 32 +161 18 +53 194 +96 44 +119 67 +26 132 +30 154 +39 111 +113 144 +155 26 +46 39 +151 145 +194 164 +118 3 +193 188 +79 161 +146 120 +104 75 +44 10 +128 102 +57 62 +178 26 +150 158 +154 64 +119 58 +190 50 +161 194 +152 76 +23 59 +184 72 +37 150 +65 29 +193 132 +97 175 +79 173 +138 10 +90 20 +14 7 +136 153 +142 66 +33 187 +71 149 +187 34 +49 126 +65 110 +44 169 +151 40 +88 176 +135 42 +108 161 +127 172 +75 85 +141 187 +60 167 +123 85 +17 62 +72 27 +126 150 +200 159 +92 119 +37 1 +132 187 +136 28 +183 31 +124 76 +163 6 +121 138 +121 70 +159 108 +146 172 +37 52 +181 51 +30 68 +131 95 +17 53 +150 16 +5 87 +136 54 +139 83 +27 45 +151 127 +147 53 +78 7 +149 27 +13 52 +67 52 +102 50 +87 93 +163 137 +10 91 +136 168 +14 150 +40 147 +169 76 +44 36 +83 31 +120 109 +179 70 +146 187 +176 135 +18 41 +65 9 +173 30 +124 40 +92 117 +191 67 +71 84 +39 71 +36 116 +44 3 +51 154 +100 196 +75 191 +161 167 +41 131 +117 174 +142 181 +60 92 +16 92 +19 162 +82 86 +8 159 +127 54 +95 140 +124 161 +38 90 +40 193 +119 26 +66 194 +76 164 +129 40 +140 56 +84 91 +119 106 +64 53 +112 143 +127 149 +101 199 +168 41 +95 61 +170 48 +37 107 +185 107 +92 147 +120 146 +25 66 +93 180 +67 99 +93 176 +68 148 +11 150 +17 84 +111 121 +68 35 +18 79 +178 192 +7 176 +196 35 +32 141 +199 134 +192 57 +161 67 +114 180 +88 11 +100 94 +4 184 +72 59 +167 24 +125 154 +22 144 +156 77 +90 147 +143 93 +74 95 +187 162 +162 85 +136 70 +70 72 +198 132 +120 199 +181 166 +74 9 +22 50 +135 2 +131 31 +198 140 +76 137 +156 172 +144 36 +45 126 +102 136 +21 43 +20 200 +3 77 +175 15 +169 186 +109 78 +18 31 +173 199 +18 108 +136 26 +99 154 +129 197 +18 80 +111 163 +142 101 +40 8 +78 119 +183 160 +24 136 +37 50 +145 1 +128 154 +12 3 +164 9 +82 135 +178 126 +110 172 +123 147 +113 170 +129 26 +86 2 +15 199 +147 104 +179 47 +120 73 +173 119 +169 11 +46 43 +126 153 +103 147 +6 57 +89 187 +8 65 +146 48 +93 164 +19 63 +163 150 +165 150 +61 134 +55 71 +153 108 +29 33 +124 45 +67 164 +24 161 +125 92 +77 149 +129 161 +124 162 +5 31 +62 131 +155 141 +94 59 +60 45 +180 102 +125 43 +58 152 +173 145 +198 115 +157 97 +68 192 +107 30 +90 16 +61 76 +182 80 +21 112 +3 131 +87 154 +9 170 +22 10 +166 4 +171 58 +119 28 +57 95 +170 156 +54 103 +173 200 +95 21 +71 193 +78 55 +176 60 +39 60 +200 92 +163 141 +52 38 +113 36 +50 110 +5 66 +64 134 +160 166 +5 169 +90 91 +180 185 +173 100 +6 192 +1 158 +64 173 +169 174 +194 4 +47 57 +124 9 +170 111 +17 28 +118 69 +29 166 +115 81 +133 173 +81 76 +119 197 +87 35 +96 10 +186 36 +105 175 +31 186 +167 119 +120 32 +86 91 +191 186 +16 21 +85 138 +60 7 +43 167 +116 56 +177 140 +92 125 +18 174 +167 19 +7 148 +14 58 +133 11 +108 131 +45 37 +190 17 +198 179 +112 120 +19 87 +133 74 +148 196 +183 102 +169 37 +36 190 +76 161 +167 107 +97 49 +69 5 +11 99 +165 164 +17 198 +58 116 +78 170 +173 180 +146 112 +138 82 +111 15 +198 67 +34 54 +15 4 +100 157 +142 173 +80 23 +169 81 +164 28 +143 147 +24 172 +43 80 +76 8 +5 102 +72 105 +119 95 +161 124 +123 76 +28 47 +100 176 +199 166 +59 5 +99 186 +153 15 +147 70 +154 23 +163 21 +159 38 +69 197 +164 38 +132 192 +169 159 +126 141 +167 191 +33 56 +147 74 +116 15 +158 194 +15 144 +1 34 +67 197 +186 156 +57 170 +117 89 +126 117 +174 6 +93 123 +1 176 +154 151 +36 11 +33 119 +165 136 +120 161 +95 50 +85 106 +144 199 +183 191 +71 160 +140 105 +78 99 +77 23 +16 59 +51 68 +24 68 +99 3 +192 125 +189 88 +155 109 +127 73 +73 190 +177 85 +129 79 +200 60 +152 183 +105 27 +6 63 +108 23 +168 6 +77 133 +85 72 +101 104 +104 71 +47 10 +128 97 +46 138 +123 63 +86 84 +19 184 +6 185 +31 12 +166 105 +155 85 +148 101 +130 152 +11 63 +9 190 +48 139 +114 140 +89 185 +94 141 +8 96 +154 187 +96 38 +11 48 +69 58 +68 196 +87 67 +121 114 +87 156 +169 115 +25 199 +171 156 +64 65 +149 129 +117 139 +24 86 +111 187 +123 135 +42 161 +131 157 +14 36 +151 4 +200 115 +40 49 +76 108 +92 200 +13 62 +192 39 +35 49 +20 72 +20 104 +123 90 +147 199 +127 189 +16 111 +8 31 +59 83 +43 3 +8 40 +163 2 +61 183 +164 187 +162 165 +166 9 +124 157 +97 27 +155 75 +34 141 +170 151 +98 89 +143 3 +101 128 +28 39 +40 52 +118 101 +27 152 +20 42 +118 138 +160 74 +105 6 +200 65 +59 34 +139 31 +136 105 +17 99 +130 47 +149 58 +63 149 +98 77 +143 131 +150 28 +161 149 +51 124 +36 99 +71 142 +35 143 +76 107 +55 4 +46 145 +139 65 +70 151 +10 83 +29 123 +184 108 +97 20 +111 127 +198 134 +124 140 +126 89 +21 45 +19 187 +59 67 +126 72 +33 27 +193 116 +192 102 +35 29 +157 165 +14 40 +115 171 +157 96 +154 25 +58 139 +69 160 +17 111 +145 21 +185 72 +184 147 +39 18 +189 193 +104 154 +74 172 +36 134 +47 140 +148 195 +85 41 +1 100 +57 91 +186 92 +49 166 +44 148 +177 134 +49 198 +97 124 +102 156 +191 189 +118 175 +188 141 +51 132 +17 123 +190 193 +151 112 +118 79 +67 187 +154 173 +11 135 +152 92 +191 10 +108 186 +40 117 +26 57 +122 66 +73 69 +127 83 +148 36 +10 78 +121 158 +114 14 +170 91 +129 125 +109 41 +109 100 +139 91 +53 48 +38 81 +159 56 +187 95 +89 197 +79 25 +145 200 +174 13 +86 106 +44 200 +78 123 +42 89 +85 96 +169 129 +18 105 +7 179 +117 40 +132 38 +54 197 +113 77 +6 200 +48 63 +85 111 +193 25 +61 79 +182 40 +51 145 +88 42 +62 12 +160 37 +74 119 +193 184 +173 31 +171 105 +145 15 +181 123 +198 74 +141 186 +40 31 +144 161 +35 70 +117 78 +61 66 +20 83 +99 100 +115 113 +36 149 +57 71 +148 11 +100 140 +181 165 +69 18 +82 127 +35 51 +113 56 +141 182 +6 115 +56 95 +136 34 +102 122 +80 86 +58 197 +74 186 +21 41 +173 56 +84 72 +115 67 +162 105 +9 174 +69 32 +175 179 +136 1 +57 68 +153 184 +145 32 +61 132 +120 200 +23 2 +125 104 +46 59 +27 4 +191 87 +198 111 +118 31 +48 15 +73 34 +197 64 +102 163 +51 63 +108 77 +143 148 +9 38 +82 97 +69 126 +133 143 +50 102 +120 114 +78 165 +107 73 +25 117 +41 187 +155 78 +113 71 +87 41 +196 119 +167 169 +125 69 +134 150 +188 62 +30 131 +179 68 +94 97 +131 52 +142 86 +34 88 +129 11 +185 53 +84 29 +15 18 +120 95 +48 49 +57 12 +65 198 +161 1 +186 152 +129 31 +89 172 +82 88 +87 196 +117 23 +173 165 +160 120 +166 43 +76 39 +43 89 +154 179 +146 188 +89 82 +9 96 +94 57 +35 88 +158 105 +49 62 +72 127 +82 63 +102 165 +78 149 +151 41 +188 164 +5 83 +125 16 +176 59 +192 151 +142 125 +144 5 +113 73 +61 181 +60 71 +179 52 +157 105 +92 174 +5 189 +109 42 +11 128 +107 174 +29 88 +143 21 +47 121 +19 134 +1 97 +79 69 +180 73 +101 75 +128 52 +85 157 +49 170 +175 3 +112 106 +192 10 +51 12 +7 68 +175 114 +110 89 +108 2 +199 6 +10 141 +3 38 +8 99 +36 61 +139 146 +105 55 +124 12 +146 134 +23 76 +125 56 +7 128 +126 40 +156 123 +134 57 +107 127 +5 12 +198 38 +130 183 +55 93 +138 44 +13 134 +134 144 +118 43 +177 46 +86 148 +164 96 +117 99 +36 179 +152 182 +27 175 +189 104 +111 150 +166 75 +188 89 +155 142 +52 131 +167 21 +83 89 +10 76 +197 163 +80 140 +156 73 +6 127 +155 72 +29 195 +102 78 +183 147 +27 30 +18 42 +175 153 +130 30 +4 19 +118 132 +90 106 +84 45 +4 185 +82 178 +18 66 +37 98 +184 52 +40 47 +43 75 +132 30 +174 162 +59 149 +171 86 +200 137 +190 179 +18 148 +82 106 +154 178 +118 181 +41 94 +18 55 +54 89 +83 42 +5 61 +157 109 +144 35 +39 86 +160 24 +49 24 +17 150 +156 130 +99 32 +83 108 +200 161 +122 196 +21 50 +37 76 +28 144 +185 112 +66 113 +19 179 +145 35 +137 195 +144 148 +190 171 +181 2 +14 151 +95 128 +80 29 +115 19 +187 132 +150 70 +106 73 +76 61 +95 27 +83 128 +153 16 +126 191 +31 47 +130 119 +140 177 +194 57 +157 82 +176 134 +154 14 +184 109 +119 107 +197 141 +27 164 +44 121 +25 170 +152 14 +121 100 +2 22 +64 110 +130 35 +180 120 +46 169 +94 111 +175 9 +112 164 +180 122 +25 182 +200 72 +30 180 +25 96 +93 129 +28 168 +151 175 +118 60 +7 134 +97 68 +162 72 +116 78 +90 135 +93 43 +46 85 +88 46 +42 31 +188 167 +93 127 +39 107 +189 200 +142 32 +175 138 +73 72 +177 122 +109 60 +175 91 +18 17 +131 178 +191 108 +41 190 +79 146 +26 134 +6 40 +133 1 +133 102 +200 86 +155 122 +61 77 +51 2 +94 106 +41 6 +162 69 +53 132 +177 8 +185 156 +35 77 +158 7 +106 61 +20 2 +17 31 +163 138 +16 50 +22 41 +187 105 +53 170 +126 124 +146 190 +52 28 +146 170 +17 193 +181 174 +56 170 +36 64 +56 81 +49 46 +5 114 +191 95 +165 79 +33 59 +168 190 +151 91 +180 125 +59 186 +95 43 +147 111 +64 69 +138 62 +199 26 +127 140 +198 106 +136 40 +168 93 +133 115 +86 189 +117 51 +151 45 +7 86 +58 12 +33 191 +89 12 +125 75 +137 143 +6 119 +45 181 +36 79 +145 163 +145 56 +190 186 +2 170 +106 132 +138 65 +156 132 +173 179 +33 140 +98 100 +13 39 +118 16 +106 150 +148 133 +153 20 +59 39 +180 105 +123 62 +17 180 +194 106 +80 41 +71 103 +107 110 +5 11 +170 16 +35 14 +36 53 +67 199 +182 86 +171 66 +22 174 +92 191 +92 145 +52 11 +107 164 +91 76 +63 146 +77 185 +49 105 +130 143 +33 43 +159 199 +68 153 +17 104 +63 71 +92 69 +103 9 +181 127 +59 97 +93 200 +100 177 +38 49 +115 156 +5 14 +93 1 +40 83 +70 120 +198 121 +150 181 +124 90 +105 145 +49 13 +128 41 +42 83 +89 129 +148 189 +165 1 +140 49 +149 5 +9 27 +24 34 +170 113 +146 3 +114 129 +133 44 +90 83 +45 178 +119 25 +4 9 +54 48 +77 104 +62 158 +152 181 +41 144 +147 4 +15 61 +63 75 +2 150 +80 28 +44 50 +40 48 +74 194 +57 188 +66 127 +49 143 +30 49 +73 140 +59 94 +108 110 +145 125 +24 33 +158 57 +192 191 +77 121 +47 95 +53 78 +73 19 +17 73 +76 187 +64 117 +35 38 +118 27 +109 156 +84 55 +7 62 +129 107 +191 142 +173 47 +142 186 +84 6 +47 109 +56 109 +182 168 +138 71 +73 14 +23 75 +40 80 +54 167 +90 32 +112 152 +167 179 +50 166 +186 57 +102 119 +150 109 +146 35 +1 102 +38 66 +29 87 +73 116 +10 150 +119 149 +115 12 +63 179 +155 162 +35 153 +141 196 +47 183 +105 133 +63 58 +199 171 +65 39 +55 119 +124 150 +90 57 +120 38 +26 133 +151 17 +17 148 +86 155 +179 120 +189 14 +42 155 +112 151 +87 164 +178 95 +112 47 +132 22 +116 91 +29 133 +100 35 +157 168 +6 41 +196 47 +179 150 +82 159 +189 4 +47 173 +11 126 +186 85 +105 108 +169 15 +51 97 +45 35 +125 78 +82 90 +51 160 +184 36 +29 120 +41 166 +90 193 +68 134 +61 186 +180 44 +39 83 +140 4 +83 22 +141 31 +148 159 +135 60 +78 81 +60 37 +144 29 +64 121 +175 183 +104 189 +169 178 +94 74 +110 56 +12 187 +158 56 +130 164 +120 26 +122 118 +36 70 +81 192 +125 4 +80 154 +31 3 +130 167 +89 155 +100 98 +187 152 +70 89 +86 23 +68 189 +114 185 +48 191 +109 181 +36 65 +32 76 +34 188 +95 62 +4 172 +186 182 +117 80 +56 143 +179 119 +102 19 +53 84 +23 187 +106 200 +49 78 +10 94 +82 193 +152 198 +101 74 +85 29 +157 129 +147 167 +74 14 +89 178 +163 130 +81 198 +81 157 +34 123 +181 170 +45 96 +158 45 +137 72 +192 185 +51 105 +45 187 +135 159 +156 155 +133 185 +116 58 +92 199 +166 40 +135 130 +158 102 +76 197 +183 52 +100 64 +50 174 +60 10 +75 146 +152 142 +27 176 +85 119 +159 30 +124 176 +126 125 +158 197 +175 43 +6 199 +96 40 +111 18 +81 93 +152 102 +9 71 +18 131 +97 184 +31 124 +150 149 +9 140 +187 84 +166 41 +176 64 +38 128 +194 23 +91 128 +159 13 +80 174 +103 5 +113 24 +6 156 +52 100 +66 126 +24 131 +7 67 +60 77 +197 113 +114 71 +15 127 +100 106 +146 56 +29 130 +69 100 +14 176 +96 19 +68 137 +129 100 +79 187 +157 61 +200 7 +197 143 +177 160 +66 13 +142 50 +75 69 +46 105 +176 21 +55 123 +28 149 +34 31 +116 151 +109 162 +126 197 +193 28 +40 39 +51 95 +189 192 +30 147 +49 77 +17 92 +175 50 +168 119 +94 129 +10 172 +119 115 +61 21 +136 94 +97 127 +172 170 +184 150 +147 122 +31 82 +3 190 +153 174 +2 112 +177 109 +54 192 +163 35 +188 137 +195 94 +72 106 +32 181 +191 122 +110 37 +82 26 +111 137 +146 149 +110 108 +193 114 +62 94 +179 128 +173 33 +116 41 +71 10 +86 159 +69 92 +68 30 +150 186 +28 127 +142 96 +196 16 +28 72 +55 147 +13 150 +156 90 +121 67 +191 4 +53 188 +19 148 +77 59 +153 7 +6 39 +41 36 +94 180 +182 107 +199 96 +172 186 +163 91 +145 42 +37 145 +71 83 +145 46 +100 194 +16 123 +184 144 +84 110 +179 139 +148 157 +147 136 +176 49 +157 43 +174 182 +176 181 +171 191 +57 152 +107 79 +87 198 +182 124 +135 107 +68 142 +141 132 +20 34 +185 26 +154 98 +42 175 +13 30 +97 147 +43 30 +23 111 +187 122 +179 21 +85 112 +75 43 +101 148 +22 38 +176 69 +16 48 +194 8 +169 56 +112 104 +193 83 +123 158 +179 198 +171 48 +88 3 +156 76 +130 18 +30 160 +70 187 +7 187 +104 139 +14 199 +189 63 +165 72 +60 187 +106 108 +140 159 +128 114 +45 62 +141 29 +164 147 +25 46 +56 11 +153 35 +190 56 +25 124 +140 17 +9 142 +184 130 +2 53 +91 42 +59 23 +157 70 +135 108 +124 28 +169 109 +117 7 +82 142 +51 76 +88 70 +192 68 +22 33 +15 77 +15 2 +176 1 +173 177 +80 163 +95 173 +171 21 +12 107 +36 184 +14 79 +194 137 +21 121 +3 166 +42 24 +98 96 +58 32 +193 21 +117 133 +87 38 +139 128 +28 142 +193 38 +22 30 +38 133 +110 158 +145 155 +29 31 +164 153 +50 41 +55 19 +43 19 +47 145 +142 160 +40 77 +14 11 +188 79 +57 54 +84 130 +189 127 +64 44 +111 5 +22 9 +160 153 +79 185 +76 147 +40 46 +106 34 +109 73 +145 184 +42 21 +60 15 +168 182 +66 95 +139 170 +96 28 +103 97 +127 183 +165 12 +73 15 +138 84 +194 66 +137 173 +95 29 +28 32 +116 180 +10 177 +53 12 +66 124 +128 141 +53 20 +113 59 +125 123 +114 143 +110 18 +139 71 +199 10 +81 160 +162 190 +42 93 +45 25 +16 23 +32 117 +158 99 +152 148 +82 38 +41 141 +105 91 +77 46 +180 187 +93 15 +65 91 +131 90 +114 28 +192 160 +171 131 +147 110 +173 185 +41 3 +113 42 +87 20 +173 27 +140 155 +42 91 +120 142 +126 22 +10 59 +130 38 +145 117 +148 6 +38 65 +59 74 +140 26 +139 70 +111 193 +180 9 +103 78 +100 128 +1 48 +200 114 +48 79 +1 75 +31 41 +9 112 +78 155 +92 177 +138 145 +47 177 +165 143 +129 72 +8 106 +75 153 +94 121 +147 188 +31 188 +64 130 +17 129 +48 181 +165 176 +73 95 +95 56 +149 116 +116 8 +184 50 +186 53 +73 107 +100 173 +131 67 +6 184 +187 196 +110 29 +183 8 +24 104 +100 167 +13 129 +89 113 +38 102 +7 35 +66 63 +182 161 +150 141 +107 81 +131 112 +186 9 +163 92 +150 134 +90 134 +180 14 +139 95 +29 83 +119 91 +34 185 +54 77 +148 99 +76 143 +138 63 +53 77 +176 172 +170 21 +90 74 +71 90 +98 190 +118 8 +39 135 +161 38 +110 92 +6 137 +25 94 +140 173 +187 92 +54 65 +162 1 +89 37 +26 13 +40 36 +49 129 +98 25 +99 168 +50 42 +137 44 +143 80 +183 182 +2 160 +16 42 +178 86 +93 95 +78 147 +101 16 +153 107 +107 129 +145 127 +193 122 +156 1 +200 174 +162 129 +40 104 +131 51 +59 65 +16 168 +71 19 +67 34 +92 109 +148 117 +160 164 +117 162 +113 135 +191 13 +200 39 +99 62 +191 37 +179 102 +56 61 +199 44 +199 70 +105 194 +117 29 +22 39 +69 71 +22 182 +76 190 +10 61 +115 22 +163 127 +165 141 +141 72 +64 176 +33 52 +116 36 +27 196 +114 130 +44 33 +81 83 +121 76 +197 144 +199 133 +6 138 +46 192 +65 88 +79 75 +11 131 +67 95 +155 51 +34 160 +101 32 +174 48 +141 120 +197 98 +84 47 +144 141 +95 170 +33 44 +54 88 +69 183 +180 163 +33 176 +122 89 +81 27 +11 68 +13 155 +85 32 +107 150 +157 200 +145 113 +178 185 +72 174 +151 14 +112 12 +47 26 +90 161 +173 194 +48 132 +45 23 +174 52 +121 88 +169 39 +112 1 +60 131 +159 170 +119 179 +152 63 +186 102 +15 124 +89 164 +72 57 +62 180 +41 193 +152 66 +26 80 +84 16 +41 146 +147 25 +12 159 +76 159 +121 25 +180 170 +146 154 +17 152 +168 122 +164 31 +57 28 +153 5 +173 94 +64 154 +175 21 +117 195 +24 19 +115 168 +182 156 +89 97 +111 188 +185 11 +44 23 +86 52 +155 192 +70 174 +87 96 +185 40 +120 115 +77 137 +143 40 +174 176 +1 135 +79 49 +30 41 +184 200 +84 164 +24 190 +58 70 +73 119 +132 95 +70 158 +154 38 +145 126 +60 199 +54 115 +94 171 +45 138 +139 74 +118 170 +47 172 +132 8 +49 157 +95 39 +61 121 +6 25 +105 88 +198 80 +58 171 +161 192 +162 28 +115 120 +39 30 +92 158 +38 24 +126 157 +131 80 +160 130 +101 117 +179 154 +142 95 +166 3 +128 161 +79 52 +87 4 +139 85 +139 47 +56 58 +57 88 +79 164 +88 122 +166 160 +139 155 +32 56 +143 32 +8 160 +15 107 +119 30 +188 94 +29 115 +53 190 +164 117 +84 15 +116 101 +146 58 +82 31 +24 17 +175 143 +12 180 +64 122 +153 171 +58 120 +114 26 +121 15 +66 130 +172 90 +152 133 +121 128 +26 129 +39 104 +138 102 +155 10 +199 136 +143 103 +55 130 +22 145 +7 33 +31 23 +110 163 +42 110 +139 72 +10 95 +77 53 +87 15 +41 53 +145 85 +161 126 +78 106 +15 151 +86 63 +26 113 +190 64 +5 118 +169 55 +195 127 +103 191 +175 26 +113 72 +163 180 +67 73 +135 97 +199 56 +33 183 +26 104 +7 64 +129 191 +128 40 +91 32 +181 7 +46 144 +89 63 +147 196 +122 129 +77 105 +57 50 +89 116 +148 114 +118 200 +83 73 +145 51 +199 91 +163 71 +118 49 +35 163 +115 15 +105 76 +108 65 +113 10 +81 136 +190 54 +54 46 +132 115 +171 47 +50 186 +91 89 +187 190 +178 19 +127 191 +17 78 +43 17 +62 104 +194 101 +143 76 +34 131 +104 27 +182 33 +123 77 +170 5 +73 23 +158 47 +32 98 +153 39 +198 169 +84 101 +165 96 +149 168 +148 147 +37 158 +35 4 +200 187 +8 103 +7 66 +160 55 +13 41 +104 26 +73 21 +115 140 +35 186 +197 52 +115 161 +122 115 +127 32 +124 49 +133 108 +15 161 +184 19 +30 139 +65 72 +128 181 +124 70 +49 14 +84 121 +17 106 +16 65 +200 14 +24 23 +87 54 +142 5 +50 131 +169 144 +133 196 +17 80 +95 44 +179 4 +196 170 +49 97 +51 157 +140 70 +162 151 +19 106 +184 1 +160 189 +191 200 +176 153 +104 94 +137 77 +82 196 +39 96 +72 177 +21 186 +133 64 +74 23 +194 90 +134 74 +36 26 +101 2 +62 152 +16 121 +118 107 +33 96 +86 121 +116 90 +174 25 +10 120 +55 101 +188 105 +177 193 +147 55 +27 55 +20 141 +157 9 +161 19 +87 199 +63 82 +100 17 +153 120 +171 26 +107 14 +152 200 +55 5 +45 188 +21 184 +73 172 +25 106 +123 193 +28 46 +102 11 +191 187 +177 56 +26 102 +135 139 +5 177 +114 33 +197 70 +112 133 +190 87 +149 80 +146 102 +138 146 +69 51 +72 13 +136 78 +193 196 +110 106 +10 164 +26 123 +149 140 +133 35 +80 84 +60 145 +48 73 +198 10 +121 155 +133 104 +134 101 +68 20 +122 29 +7 99 +126 7 +167 189 +47 14 +140 154 +73 54 +14 15 +180 3 +106 19 +99 27 +53 82 +27 149 +113 174 +159 34 +139 165 +99 20 +140 60 +183 105 +160 87 +192 81 +100 50 +178 133 +37 64 +58 182 +151 70 +147 19 +146 101 +57 13 +6 194 +64 147 +116 62 +166 175 +50 49 +169 17 +89 99 +115 31 +164 8 +52 81 +76 106 +127 157 +14 80 +147 6 +167 67 +120 68 +115 71 +102 1 +36 130 +128 194 +200 153 +151 23 +61 139 +17 168 +191 44 +178 11 +185 102 +33 135 +195 169 +60 48 +1 63 +74 90 +117 192 +133 17 +24 3 +37 192 +32 149 +65 92 +138 21 +63 174 +84 128 +13 20 +46 93 +189 161 +31 199 +4 65 +4 124 +98 38 +94 78 +9 66 +143 152 +196 182 +127 29 +170 66 +24 108 +135 93 +199 69 +78 136 +87 30 +83 196 +167 76 +179 170 +9 47 +79 121 +174 186 +1 128 +70 147 +70 136 +199 117 +103 38 +31 7 +149 38 +81 128 +57 157 +130 175 +148 165 +127 98 +151 77 +86 71 +128 77 +142 41 +90 12 +106 143 +164 165 +125 6 +151 150 +169 133 +91 27 +145 63 +116 48 +180 109 +51 175 +114 110 +181 6 +133 123 +189 83 +181 17 +114 69 +50 142 +142 111 +185 165 +149 55 +175 141 +81 14 +167 4 +56 93 +4 186 +10 26 +4 84 +156 174 +106 7 +66 80 +43 132 +133 70 +69 140 +164 97 +67 193 +100 143 +137 127 +36 30 +3 144 +153 141 +56 92 +58 176 +101 95 +190 18 +155 190 +70 138 +178 85 +103 127 +19 56 +183 20 +66 86 +41 159 +173 36 +26 36 +183 66 +27 106 +105 57 +71 6 +122 108 +174 67 +92 196 +182 13 +173 197 +122 100 +188 72 +37 5 +148 128 +195 189 +152 8 +23 120 +65 4 +146 159 +87 183 +73 126 +106 85 +35 33 +137 61 +96 150 +80 76 +104 49 +56 136 +183 25 +101 154 +170 198 +120 187 +90 156 +109 51 +121 170 +56 20 +120 51 +172 22 +83 46 +127 33 +36 42 +49 191 +148 82 +45 112 +83 10 +185 186 +90 126 +85 22 +107 158 +200 11 +82 35 +19 136 +150 99 +113 173 +101 181 +10 65 +131 12 +132 121 +52 125 +166 5 +59 6 +107 48 +198 180 +93 13 +142 22 +9 90 +196 124 +30 113 +129 10 +170 185 +51 65 +74 33 +200 22 +76 56 +107 72 +186 65 +129 64 +132 129 +102 200 +29 198 +174 157 +33 196 +79 144 +179 127 +59 28 +84 92 +151 165 +109 22 +2 32 +88 143 +107 182 +178 77 +71 187 +70 117 +35 58 +119 9 +147 160 +101 37 +1 192 +184 114 +113 177 +120 171 +15 87 +74 87 +127 4 +171 151 +198 151 +147 183 +106 116 +141 127 +48 121 +124 31 +46 5 +112 63 +55 84 +69 14 +158 164 +109 145 +83 17 +37 81 +71 184 +69 190 +61 133 +157 146 +98 24 +9 41 +107 41 +129 135 +88 39 +74 81 +168 169 +192 29 +5 50 +172 42 +156 116 +4 144 +168 181 +33 178 +123 108 +18 103 +166 138 +175 197 +44 179 +32 19 +155 31 +58 161 +34 125 +43 32 +11 139 +125 103 +19 68 +45 79 +147 79 +86 170 +191 65 +17 2 +118 168 +84 191 +58 63 +94 100 +90 35 +114 168 +5 172 +182 59 +151 49 +138 164 +103 108 +90 39 +50 75 +67 198 +47 62 +147 164 +122 199 +97 164 +156 176 +133 58 +130 125 +84 27 +119 183 +66 7 +176 168 +86 31 +143 183 +61 96 +28 191 +135 79 +183 149 +67 121 +52 110 +35 124 +5 40 +4 135 +23 158 +31 137 +77 3 +33 101 +170 62 +25 27 +30 166 +76 84 +173 138 +148 93 +61 175 +68 51 +192 71 +158 86 +175 5 +133 12 +12 100 +117 70 +197 134 +145 118 +146 73 +9 77 +28 104 +141 87 +90 123 +102 65 +24 165 +105 167 +23 102 +5 90 +4 82 +60 47 +86 68 +171 84 +191 64 +14 159 +28 74 +173 22 +120 185 +7 100 +169 175 +98 15 +122 42 +179 135 +6 152 +147 181 +19 75 +71 88 +44 186 +196 181 +93 73 +192 137 +104 38 +142 92 +159 181 +57 36 +16 56 +135 26 +99 43 +199 43 +126 196 +64 21 +177 88 +192 197 +194 127 +50 152 +187 71 +191 170 +68 81 +153 60 +44 60 +124 175 +189 174 +186 175 +156 87 +119 47 +2 64 +194 107 +85 107 +169 179 +18 163 +98 122 +2 137 +3 136 +199 124 +12 182 +111 60 +186 180 +25 172 +77 18 +122 3 +155 178 +151 73 +111 25 +16 6 +154 87 +152 123 +20 153 +157 166 +56 196 +56 8 +75 187 +99 48 +38 151 +50 200 +134 71 +78 114 +95 154 +148 116 +68 103 +62 43 +159 41 +47 43 +116 12 +67 19 +28 146 +101 27 +71 113 +193 190 +86 42 +135 3 +36 176 +156 50 +114 60 +24 35 +112 30 +147 191 +168 66 +65 79 +11 16 +188 200 +97 162 +122 83 +148 86 +47 36 +183 36 +111 144 +154 139 +71 123 +52 157 +147 103 +12 45 +159 23 +138 12 +156 43 +112 115 +173 158 +193 52 +159 33 +8 200 +140 111 +186 32 +113 79 +158 148 +188 12 +128 189 +144 92 +127 56 +139 176 +107 176 +43 34 +118 52 +181 48 +173 7 +123 56 +150 60 +58 5 +188 183 +135 161 +106 189 +110 198 +89 140 +25 189 +163 125 +154 56 +161 142 +108 88 +74 11 +158 82 +151 199 +102 191 +110 118 +175 142 +76 27 +163 124 +168 110 +16 78 +192 41 +145 68 +88 90 +33 105 +51 196 +114 79 +80 92 +14 193 +175 8 +80 188 +63 77 +4 151 +48 111 +200 5 +106 153 +163 187 +50 162 +23 142 +105 119 +179 138 +65 22 +151 122 +69 23 +194 119 +53 81 +127 6 +198 66 +170 144 +131 92 +130 154 +145 173 +186 190 +173 29 +140 150 +196 38 +71 96 +151 184 +191 149 +116 188 +161 125 +141 171 +111 58 +84 48 +41 78 +83 43 +190 168 +57 99 +61 59 +116 31 +101 50 +95 155 +43 90 +129 194 +49 179 +9 125 +18 52 +66 122 +111 21 +66 37 +138 91 +94 31 +191 22 +7 53 +72 54 +195 54 +198 166 +66 174 +152 140 +140 168 +11 85 +80 197 +163 66 +154 7 +9 100 +134 89 +141 158 +180 123 +118 5 +103 142 +178 74 +93 30 +22 32 +135 68 +72 61 +24 142 +55 172 +132 144 +37 24 +48 2 +63 102 +97 199 +91 111 +4 38 +7 189 +94 63 +181 194 +39 78 +72 184 +140 165 +107 76 +26 55 +63 15 +161 31 +1 85 +45 75 +195 105 +95 65 +111 27 +74 140 +78 177 +153 31 +6 68 +96 94 +29 194 +68 87 +24 74 +65 178 +111 82 +37 38 +89 19 +105 169 +158 3 +160 88 +18 122 +56 73 +136 151 +14 6 +168 140 +111 38 +57 174 +166 183 +88 82 +135 91 +108 197 +119 80 +159 194 +140 164 +112 89 +94 99 +152 115 +57 150 +196 141 +32 12 +180 134 +63 70 +142 104 +85 4 +8 87 +194 122 +152 99 +82 133 +118 6 +49 89 +91 69 +122 71 +153 160 +142 199 +147 85 +183 162 +96 76 +191 35 +34 83 +81 106 +143 59 +93 146 +194 150 +77 90 +76 154 +128 27 +82 116 +197 89 +131 8 +153 76 +28 105 +35 113 +141 56 +161 85 +93 128 +133 78 +5 101 +4 21 +155 54 +20 136 +12 140 +107 80 +148 103 +44 53 +59 146 +108 138 +107 139 +71 18 +31 174 +42 2 +31 15 +198 171 +89 105 +45 54 +63 185 +43 71 +120 77 +81 75 +131 86 +124 193 +59 52 +169 119 +85 52 +71 16 +137 162 +108 89 +26 82 +134 92 +105 61 +175 48 +89 95 +167 46 +142 23 +65 43 +146 44 +175 101 +104 171 +171 56 +20 112 +67 115 +100 144 +29 60 +111 62 +97 142 +72 32 +12 152 +161 127 +29 94 +65 128 +13 61 +127 15 +8 51 +102 20 +137 86 +121 119 +126 118 +189 156 +160 119 +111 30 +174 127 +47 64 +179 40 +10 156 +22 31 +46 49 +196 159 +47 158 +18 141 +92 135 +199 158 +137 136 +155 104 +136 171 +6 128 +67 196 +12 2 +5 151 +52 78 +107 51 +97 161 +48 20 +143 62 +49 176 +107 188 +178 171 +92 83 +21 139 +118 142 +176 53 +80 11 +20 61 +141 168 +26 182 +178 20 +122 33 +109 159 +7 188 +108 13 +144 152 +100 125 +194 197 +64 73 +140 84 +24 27 +92 3 +168 87 +106 72 +87 64 +134 33 +106 9 +158 19 +91 104 +80 102 +53 161 +112 43 +88 118 +64 33 +136 167 +20 158 +15 70 +3 27 +184 148 +51 78 +98 37 +7 158 +42 67 +173 106 +188 132 +125 89 +55 163 +1 175 +16 4 +54 11 +172 196 +195 42 +142 197 +110 68 +32 1 +62 193 +138 188 +7 52 +63 98 +137 146 +152 143 +120 66 +178 97 +154 161 +113 121 +96 129 +199 157 +148 139 +168 145 +123 61 +168 106 +52 133 +137 3 +161 175 +90 82 +121 89 +121 33 +36 108 +54 111 +180 147 +194 118 +113 83 +57 7 +28 86 +67 59 +175 108 +83 58 +14 185 +86 125 +47 65 +102 82 +85 99 +149 117 +185 127 +7 58 +137 118 +153 155 +151 101 +106 17 +98 60 +187 199 +138 107 +78 200 +151 10 +13 181 +132 13 +55 9 +105 9 +132 108 +67 92 +35 1 +193 42 +49 66 +102 3 +109 96 +131 193 +38 130 +160 198 +21 17 +188 108 +71 31 +27 105 +116 111 +148 7 +35 67 +154 137 +54 191 +155 22 +144 143 +98 129 +41 55 +102 54 +42 200 +177 114 +62 91 +128 124 +173 192 +154 168 +153 169 +95 182 +21 118 +197 95 +8 44 +89 42 +122 127 +56 131 +142 62 +56 183 +152 75 +92 49 +143 92 +168 129 +119 108 +197 131 +75 129 +170 107 +43 33 +5 194 +105 198 +185 87 +177 45 +64 89 +13 27 +66 62 +37 198 +144 173 +181 18 +180 56 +113 41 +15 191 +126 114 +190 37 +82 52 +124 67 +114 158 +75 109 +14 18 +198 95 +170 186 +199 12 +176 42 +110 25 +47 126 +26 40 +150 10 +21 87 +136 66 +57 183 +178 116 +181 105 +46 149 +112 33 +83 164 +120 94 +2 143 +134 3 +123 21 +166 148 +146 88 +72 129 +102 24 +79 192 +1 140 +77 37 +165 128 +172 145 +118 154 +81 102 +142 70 +7 82 +130 51 +182 68 +140 65 +193 9 +19 73 +98 143 +154 140 +111 50 +45 91 +167 185 +86 55 +55 83 +131 121 +196 73 +57 154 +30 151 +126 77 +123 29 +103 96 +3 91 +193 34 +38 164 +145 53 +162 41 +192 126 +55 48 +134 72 +135 105 +126 165 +7 11 +76 63 +37 148 +140 30 +186 157 +61 109 +32 51 +108 183 +64 43 +87 99 +190 100 +106 27 +185 70 +139 195 +55 154 +88 133 +106 148 +86 7 +17 13 +1 87 +187 24 +35 111 +145 162 +169 128 +36 160 +190 48 +167 14 +89 101 +32 134 +96 189 +29 142 +134 56 +99 19 +105 5 +3 200 +200 12 +29 59 +15 30 +143 161 +89 29 +141 12 +31 149 +91 127 +49 110 +145 10 +139 174 +65 51 +158 117 +6 50 +80 21 +31 118 +58 1 +107 170 +171 19 +100 55 +49 74 +25 36 +16 86 +94 130 +167 174 +183 124 +134 65 +199 94 +156 190 +121 106 +130 44 +174 70 +55 95 +126 115 +104 14 +187 142 +169 104 +153 80 +103 33 +26 194 +113 156 +148 158 +131 148 +6 78 +139 191 +185 42 +10 93 +77 193 +181 92 +79 105 +18 48 +72 67 +108 8 +167 159 +198 70 +179 77 +183 108 +107 10 +14 196 +126 158 +144 14 +48 30 +141 151 +136 121 +11 45 +111 77 +12 85 +2 144 +99 163 +54 179 +32 195 +61 1 +50 1 +57 160 +91 181 +79 22 +175 1 +68 113 +90 146 +93 65 +42 30 +17 175 +98 35 +169 50 +195 64 +102 195 +86 142 +103 82 +23 141 +192 168 +107 109 +8 82 +146 37 +132 26 +79 60 +187 33 +179 149 +62 172 +150 30 +40 123 +100 59 +69 122 +49 113 +103 136 +196 49 +48 144 +53 112 +31 58 +142 132 +167 153 +65 14 +134 2 +164 63 +91 45 +169 82 +180 183 +131 117 +123 127 +91 34 +92 7 +171 163 +151 85 +186 142 +79 94 +30 11 +112 125 +102 38 +66 176 +125 132 +15 21 +193 166 +87 200 +40 114 +177 32 +105 4 +144 51 +114 187 +149 72 +68 166 +67 173 +129 94 +146 64 +176 110 +130 106 +19 36 +191 178 +70 163 +37 171 diff --git a/algorithms/lab06/tests/02-dfs/4.ref b/algorithms/lab06/tests/02-dfs/4.ref new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/4.ref @@ -0,0 +1 @@ +1 diff --git a/algorithms/lab06/tests/02-dfs/5.in b/algorithms/lab06/tests/02-dfs/5.in new file mode 100644 index 0000000..7d93a39 --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/5.in @@ -0,0 +1,101 @@ +300 100 +225 228 +214 153 +257 107 +156 114 +11 63 +194 144 +59 41 +86 168 +298 170 +49 77 +197 192 +212 190 +151 170 +77 270 +266 182 +134 217 +211 114 +216 138 +286 198 +94 238 +206 215 +165 225 +92 119 +121 56 +192 229 +151 76 +120 250 +139 252 +178 84 +40 89 +224 289 +26 268 +227 63 +244 117 +258 283 +86 240 +67 143 +2 176 +289 150 +128 11 +115 135 +31 172 +234 88 +108 25 +65 117 +12 225 +273 153 +86 137 +75 268 +81 54 +272 192 +270 200 +288 116 +252 58 +152 218 +248 92 +251 174 +258 136 +57 124 +109 194 +27 257 +252 286 +88 267 +84 104 +279 3 +264 164 +249 146 +149 230 +210 126 +113 287 +72 89 +155 111 +253 62 +202 117 +171 273 +184 92 +218 247 +207 195 +251 5 +113 185 +267 11 +75 189 +52 19 +300 106 +192 148 +273 276 +205 147 +127 256 +150 251 +55 182 +146 132 +123 139 +221 282 +154 33 +290 206 +260 55 +186 208 +194 298 +132 71 +30 109 diff --git a/algorithms/lab06/tests/02-dfs/5.ref b/algorithms/lab06/tests/02-dfs/5.ref new file mode 100644 index 0000000..08839f6 --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/5.ref @@ -0,0 +1 @@ +200 diff --git a/algorithms/lab06/tests/02-dfs/6.in b/algorithms/lab06/tests/02-dfs/6.in new file mode 100644 index 0000000..f0c4d43 --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/6.in @@ -0,0 +1,301 @@ +500 300 +471 394 +459 486 +150 425 +348 434 +339 37 +135 354 +300 120 +93 252 +452 299 +127 397 +220 248 +303 111 +170 46 +99 173 +281 346 +124 327 +259 257 +209 31 +62 227 +215 193 +432 429 +318 186 +347 361 +401 195 +192 153 +71 490 +33 153 +256 15 +386 481 +247 441 +304 251 +144 448 +457 92 +476 177 +9 248 +454 157 +373 111 +488 8 +258 219 +457 120 +151 167 +279 242 +193 231 +69 288 +422 367 +272 35 +430 222 +232 65 +425 174 +417 134 +464 236 +189 197 +435 484 +62 467 +221 211 +20 264 +311 156 +90 208 +295 252 +416 117 +461 307 +423 489 +211 355 +242 176 +487 451 +156 488 +20 476 +47 494 +288 238 +216 369 +453 96 +52 382 +51 16 +6 198 +441 329 +270 96 +444 180 +491 396 +34 178 +140 98 +146 372 +68 189 +201 199 +52 161 +268 159 +468 300 +98 484 +214 340 +208 341 +477 396 +176 401 +412 33 +401 68 +28 14 +98 366 +490 353 +186 480 +474 350 +368 279 +129 309 +488 316 +300 199 +226 409 +474 29 +411 213 +197 244 +371 474 +418 259 +340 40 +142 70 +353 133 +460 484 +78 190 +459 252 +94 29 +121 477 +148 369 +41 165 +246 155 +7 351 +153 305 +236 262 +219 61 +281 214 +447 146 +286 455 +249 231 +30 453 +60 230 +357 31 +497 88 +55 409 +315 476 +372 485 +182 457 +386 316 +430 276 +192 320 +137 249 +184 348 +376 246 +70 225 +194 451 +473 329 +145 407 +46 308 +5 157 +478 479 +348 281 +333 292 +294 69 +90 159 +129 164 +290 142 +114 152 +175 472 +58 203 +206 435 +464 301 +36 120 +168 157 +197 370 +127 266 +474 415 +6 193 +167 398 +95 127 +364 480 +266 203 +149 198 +374 301 +154 151 +167 175 +130 456 +289 286 +108 156 +16 317 +461 199 +247 262 +194 406 +145 161 +219 193 +191 485 +376 291 +272 15 +330 308 +150 107 +118 208 +362 197 +347 328 +230 292 +10 104 +339 293 +120 56 +291 82 +303 368 +237 122 +389 142 +362 109 +212 44 +466 440 +261 407 +52 83 +240 161 +272 192 +64 308 +281 464 +82 424 +330 266 +226 395 +108 458 +54 5 +436 392 +344 165 +298 95 +148 458 +422 377 +16 465 +480 171 +371 197 +467 333 +416 301 +131 252 +229 386 +340 372 +356 111 +350 232 +198 20 +346 33 +288 439 +292 458 +430 136 +470 404 +180 310 +338 323 +140 19 +481 279 +362 34 +471 324 +438 340 +278 208 +123 346 +281 460 +351 305 +414 374 +443 361 +437 217 +87 284 +489 255 +380 280 +35 207 +357 409 +389 449 +196 97 +202 264 +174 434 +195 260 +48 466 +358 421 +12 327 +350 320 +465 390 +236 317 +21 84 +419 234 +263 488 +92 400 +310 38 +130 118 +430 370 +84 92 +307 443 +107 201 +145 101 +258 460 +426 129 +239 13 +91 411 +218 114 +37 210 +302 66 +213 103 +467 171 +292 37 +231 407 +150 58 +187 446 +79 374 +290 197 +214 414 +139 62 +44 342 +79 160 +410 480 +238 150 +493 116 +10 189 +25 132 +463 165 +320 116 diff --git a/algorithms/lab06/tests/02-dfs/6.ref b/algorithms/lab06/tests/02-dfs/6.ref new file mode 100644 index 0000000..3bc92d4 --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/6.ref @@ -0,0 +1 @@ +201 diff --git a/algorithms/lab06/tests/02-dfs/7.in b/algorithms/lab06/tests/02-dfs/7.in new file mode 100644 index 0000000..db06db8 --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/7.in @@ -0,0 +1,701 @@ +700 700 +654 382 +235 696 +458 356 +390 40 +46 438 +637 91 +295 626 +503 317 +494 256 +372 488 +404 174 +94 520 +47 217 +202 371 +118 103 +192 357 +515 698 +72 114 +366 358 +352 39 +128 608 +349 317 +217 364 +77 161 +301 398 +633 418 +414 663 +173 552 +284 258 +341 230 +272 590 +542 370 +608 65 +176 183 +60 158 +545 500 +420 598 +323 438 +568 397 +663 369 +279 684 +544 314 +246 536 +114 396 +218 83 +9 60 +304 519 +160 47 +156 491 +390 147 +428 478 +156 363 +604 269 +669 655 +644 677 +383 638 +170 28 +275 60 +37 2 +81 277 +493 375 +267 610 +406 272 +145 661 +285 210 +156 193 +487 450 +663 296 +163 433 +215 3 +155 276 +349 283 +395 25 +462 653 +151 634 +251 423 +488 172 +167 70 +166 601 +217 617 +13 3 +72 376 +376 452 +250 216 +321 612 +362 197 +126 42 +482 694 +478 109 +91 328 +326 375 +127 471 +107 693 +644 525 +452 142 +321 422 +605 58 +517 101 +672 166 +448 379 +695 64 +174 6 +588 268 +23 61 +635 159 +29 15 +554 129 +302 12 +103 455 +646 424 +468 544 +52 515 +350 276 +563 39 +427 506 +17 81 +558 589 +229 557 +419 248 +529 209 +20 307 +559 489 +546 279 +689 197 +173 522 +99 23 +176 276 +277 80 +307 336 +284 49 +516 272 +561 376 +187 63 +161 699 +683 293 +61 648 +564 91 +318 496 +597 522 +535 551 +673 473 +635 688 +672 284 +497 13 +647 332 +567 200 +505 571 +538 329 +53 461 +427 615 +392 37 +407 514 +143 537 +509 57 +568 198 +673 214 +61 328 +129 308 +477 470 +36 474 +657 462 +484 460 +359 577 +366 14 +583 552 +376 320 +570 162 +40 468 +321 136 +5 619 +371 594 +404 388 +235 376 +104 345 +125 33 +538 350 +123 151 +633 457 +481 337 +677 189 +623 403 +519 421 +26 675 +450 263 +344 452 +421 560 +362 368 +453 135 +296 477 +59 203 +225 274 +12 435 +571 297 +141 254 +456 455 +6 502 +54 525 +258 344 +287 334 +340 479 +154 346 +163 557 +245 282 +341 407 +385 52 +166 202 +389 587 +498 414 +2 158 +184 470 +462 113 +439 48 +140 494 +323 612 +648 23 +376 624 +30 503 +185 470 +334 587 +505 362 +83 17 +340 20 +320 188 +48 639 +616 305 +298 29 +251 253 +62 509 +18 297 +187 407 +668 275 +17 329 +53 677 +171 563 +128 467 +341 347 +26 169 +270 610 +306 581 +591 562 +205 172 +122 525 +320 89 +642 374 +404 28 +278 346 +674 407 +162 60 +636 521 +622 617 +618 20 +160 674 +290 557 +463 344 +527 462 +52 95 +407 510 +308 631 +361 580 +319 20 +52 410 +125 408 +5 251 +507 261 +431 313 +398 469 +390 384 +474 563 +424 92 +305 627 +542 469 +419 25 +34 259 +38 296 +681 233 +231 136 +513 325 +206 619 +360 196 +228 274 +691 78 +221 693 +396 62 +591 425 +300 260 +357 93 +509 192 +374 537 +691 167 +527 556 +242 365 +317 672 +173 316 +451 175 +353 266 +672 638 +40 449 +584 361 +599 560 +34 275 +305 687 +241 425 +643 283 +34 218 +629 578 +134 409 +536 38 +190 322 +359 322 +530 64 +417 328 +549 608 +584 228 +162 486 +160 54 +87 97 +103 214 +394 543 +552 333 +58 604 +368 166 +143 306 +498 221 +19 361 +655 35 +66 114 +526 62 +25 301 +189 601 +383 56 +62 228 +494 361 +576 65 +491 465 +588 304 +262 374 +413 152 +354 202 +529 511 +260 455 +26 199 +220 573 +503 128 +590 201 +679 209 +482 496 +687 267 +125 510 +324 434 +318 680 +497 102 +377 105 +184 643 +585 492 +11 22 +637 406 +248 230 +656 509 +605 298 +151 36 +591 178 +452 451 +627 39 +484 148 +502 576 +83 202 +451 504 +365 382 +26 296 +337 460 +643 80 +272 201 +175 180 +466 111 +229 454 +562 514 +666 335 +108 565 +499 374 +190 471 +515 351 +273 606 +555 147 +664 368 +33 146 +401 194 +252 346 +229 601 +418 67 +258 306 +673 367 +518 29 +684 21 +376 449 +681 10 +415 108 +686 683 +336 451 +210 543 +487 92 +312 536 +603 358 +22 669 +535 697 +277 481 +547 470 +667 131 +267 51 +17 571 +667 62 +698 636 +548 384 +557 84 +95 86 +419 354 +407 15 +374 279 +648 210 +286 698 +657 381 +258 317 +688 680 +400 552 +68 199 +641 418 +294 550 +497 106 +670 271 +528 546 +282 146 +503 164 +19 516 +139 593 +343 213 +240 700 +414 260 +291 130 +588 424 +259 210 +613 690 +546 431 +453 491 +143 617 +102 213 +577 596 +339 614 +447 309 +395 499 +160 255 +417 186 +291 681 +426 176 +594 658 +352 421 +390 596 +313 536 +16 101 +599 614 +593 198 +330 488 +640 65 +621 302 +613 316 +135 601 +287 232 +564 325 +407 306 +404 509 +642 441 +574 413 +289 42 +401 40 +676 85 +563 695 +642 38 +662 171 +337 188 +321 362 +125 311 +259 348 +682 155 +185 638 +351 559 +605 163 +438 437 +441 131 +119 133 +645 68 +535 38 +183 285 +650 541 +530 296 +396 95 +229 328 +197 175 +339 551 +370 190 +90 410 +393 213 +508 209 +567 225 +423 303 +569 258 +223 496 +667 648 +555 672 +270 614 +505 200 +200 680 +634 549 +626 226 +393 668 +187 160 +254 282 +431 593 +231 350 +107 89 +464 412 +15 435 +18 544 +101 165 +524 279 +177 669 +265 143 +104 561 +458 495 +660 521 +43 387 +341 413 +144 156 +172 680 +366 532 +140 667 +32 577 +507 69 +131 185 +47 515 +185 656 +696 329 +438 262 +348 303 +44 89 +247 696 +79 660 +59 82 +329 588 +7 394 +567 33 +241 155 +183 203 +53 72 +453 655 +565 305 +34 677 +178 204 +42 36 +367 448 +473 298 +698 295 +165 569 +402 411 +147 193 +322 120 +419 636 +240 590 +439 218 +659 370 +80 278 +185 88 +382 425 +146 92 +654 410 +369 173 +401 618 +352 356 +265 120 +212 187 +207 143 +418 508 +332 150 +190 183 +150 646 +124 140 +21 391 +700 574 +545 272 +162 258 +452 601 +106 34 +243 9 +135 441 +455 596 +150 311 +622 371 +638 374 +307 293 +597 300 +121 52 +253 369 +306 650 +88 47 +22 560 +123 173 +546 607 +625 266 +471 6 +627 374 +55 696 +90 629 +296 238 +97 26 +268 355 +87 373 +648 668 +562 72 +579 204 +267 273 +289 549 +431 457 +407 278 +429 576 +333 3 +637 419 +599 393 +487 309 +93 113 +316 218 +288 404 +343 21 +294 297 +23 260 +64 28 +66 434 +556 497 +599 254 +500 215 +360 315 +341 67 +524 594 +577 426 +128 92 +555 337 +23 209 +691 365 +489 272 +293 371 +214 114 +202 84 +320 563 +57 461 +136 345 +154 380 +276 605 +174 211 +638 473 +536 698 +487 547 +502 150 +14 426 +7 221 +77 237 +139 200 +602 659 +629 383 +172 362 +519 634 +95 246 +250 246 +637 113 +200 596 +86 614 +69 269 +308 670 +527 331 +33 491 +567 172 +306 242 +602 436 +290 563 +42 465 +427 222 +6 451 +463 69 +185 50 +574 677 +332 289 +401 603 +117 553 +173 521 +372 233 +670 301 +599 122 +510 636 +350 486 +273 692 +395 448 +549 397 +121 572 +343 13 +181 582 diff --git a/algorithms/lab06/tests/02-dfs/7.ref b/algorithms/lab06/tests/02-dfs/7.ref new file mode 100644 index 0000000..fc902f4 --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/7.ref @@ -0,0 +1 @@ +124 diff --git a/algorithms/lab06/tests/02-dfs/8.in b/algorithms/lab06/tests/02-dfs/8.in new file mode 100644 index 0000000..4142e34 --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/8.in @@ -0,0 +1,1701 @@ +800 1700 +572 19 +687 286 +366 583 +75 682 +484 530 +211 22 +16 127 +695 444 +57 248 +794 764 +726 767 +133 724 +460 649 +584 44 +163 272 +433 345 +726 737 +2 112 +124 460 +742 701 +102 551 +771 678 +173 799 +595 601 +89 436 +354 605 +3 511 +264 59 +203 800 +39 298 +759 572 +377 275 +494 618 +580 7 +4 464 +33 249 +614 503 +133 503 +585 354 +246 665 +774 85 +408 689 +460 448 +507 167 +482 315 +498 655 +730 641 +500 83 +484 77 +587 36 +158 268 +204 528 +669 784 +330 93 +39 507 +263 496 +144 268 +128 732 +361 141 +448 770 +131 540 +488 633 +616 403 +351 120 +82 184 +489 365 +458 565 +363 294 +234 695 +22 85 +545 270 +658 644 +246 592 +263 698 +678 385 +459 22 +39 408 +263 153 +396 219 +331 622 +140 252 +154 105 +136 584 +466 518 +244 187 +692 190 +479 473 +326 86 +451 152 +447 586 +357 520 +375 114 +231 232 +123 697 +420 295 +670 331 +728 179 +441 358 +622 421 +86 96 +39 593 +370 157 +711 337 +398 672 +212 443 +437 351 +545 602 +595 500 +605 612 +496 206 +326 691 +341 346 +105 579 +516 224 +446 317 +78 571 +504 616 +564 494 +303 103 +88 644 +237 42 +42 491 +216 542 +398 231 +194 764 +255 79 +348 440 +693 780 +332 539 +390 507 +194 141 +698 174 +719 195 +280 213 +7 513 +332 313 +520 650 +140 371 +177 681 +136 354 +161 110 +651 142 +661 540 +797 472 +279 373 +203 442 +604 561 +792 369 +431 139 +327 541 +3 195 +523 316 +773 618 +416 479 +745 191 +63 712 +150 332 +6 621 +288 451 +504 31 +288 322 +507 753 +397 710 +566 684 +203 11 +28 259 +778 175 +458 660 +434 400 +469 463 +128 207 +122 522 +112 555 +545 531 +670 798 +586 109 +493 260 +374 665 +50 300 +789 465 +318 757 +291 735 +720 596 +281 446 +701 229 +232 364 +783 327 +594 419 +520 555 +688 234 +129 377 +336 505 +751 123 +529 19 +348 201 +239 762 +129 766 +469 738 +272 295 +694 621 +456 46 +125 767 +731 656 +575 558 +766 398 +505 122 +569 384 +699 621 +499 648 +361 215 +776 482 +511 691 +456 538 +110 607 +614 572 +559 783 +122 507 +331 177 +413 640 +740 617 +410 358 +43 545 +631 47 +200 471 +786 672 +699 431 +251 111 +631 490 +25 418 +271 633 +104 470 +528 196 +650 376 +425 553 +62 301 +281 670 +398 710 +420 212 +500 548 +752 319 +55 486 +229 526 +546 311 +617 798 +484 461 +18 490 +100 117 +584 123 +86 526 +34 462 +657 460 +120 315 +534 630 +109 338 +153 162 +327 22 +695 84 +97 252 +168 186 +469 314 +586 642 +362 314 +76 583 +536 768 +792 799 +724 33 +711 110 +209 342 +47 671 +400 351 +459 355 +213 492 +10 767 +548 191 +551 661 +527 395 +185 491 +542 498 +248 679 +681 690 +403 239 +257 375 +138 573 +688 487 +2 221 +83 582 +185 408 +731 777 +196 698 +352 156 +159 467 +15 462 +682 195 +214 587 +51 227 +202 8 +215 649 +518 733 +247 177 +376 659 +239 478 +551 451 +7 763 +291 324 +700 5 +292 500 +235 589 +100 257 +362 660 +246 599 +311 795 +224 551 +81 402 +388 531 +611 599 +391 360 +178 239 +402 136 +105 179 +113 354 +322 773 +689 372 +285 407 +471 796 +208 752 +390 73 +704 86 +104 756 +227 203 +35 609 +238 668 +299 295 +778 113 +37 647 +669 109 +311 232 +644 572 +758 191 +709 389 +578 140 +794 713 +381 762 +338 168 +337 256 +242 311 +331 308 +624 740 +522 761 +319 48 +410 551 +309 614 +18 444 +205 243 +408 405 +24 121 +279 600 +513 127 +726 450 +227 774 +528 173 +163 108 +666 240 +511 74 +217 267 +445 572 +421 633 +479 297 +175 273 +106 692 +482 552 +618 572 +71 450 +176 392 +457 9 +163 30 +324 276 +41 353 +269 685 +548 764 +486 263 +772 172 +616 540 +249 376 +18 47 +660 278 +45 416 +17 156 +787 464 +466 136 +255 342 +21 500 +447 151 +451 58 +746 715 +597 165 +7 126 +499 309 +503 250 +85 392 +660 717 +155 45 +473 179 +620 217 +547 677 +127 711 +55 664 +650 140 +525 193 +399 382 +389 799 +196 567 +284 700 +72 419 +394 461 +784 273 +21 232 +789 418 +619 333 +361 472 +764 269 +197 553 +26 458 +77 36 +502 776 +62 352 +175 159 +197 664 +591 177 +680 431 +650 698 +798 166 +180 712 +720 504 +71 572 +265 66 +599 440 +427 506 +723 174 +474 29 +122 146 +36 596 +443 539 +364 611 +583 410 +233 426 +124 409 +214 778 +121 550 +629 61 +724 401 +497 413 +350 598 +387 579 +39 607 +140 557 +90 133 +447 242 +379 441 +12 127 +382 371 +697 290 +500 207 +564 493 +301 700 +342 196 +245 322 +393 411 +38 151 +283 165 +759 369 +119 52 +609 309 +750 779 +790 40 +178 54 +343 558 +152 734 +781 631 +728 267 +750 436 +29 231 +174 395 +289 588 +427 682 +588 426 +3 611 +48 693 +7 599 +521 379 +89 13 +565 106 +470 220 +299 177 +135 23 +589 79 +130 560 +636 467 +243 609 +716 493 +690 208 +660 17 +73 79 +706 103 +484 709 +478 378 +198 16 +565 312 +56 282 +557 51 +288 299 +223 219 +609 408 +179 289 +269 797 +288 645 +234 521 +416 461 +297 282 +377 374 +28 49 +733 32 +144 790 +130 229 +368 502 +395 296 +67 158 +341 362 +514 481 +504 714 +522 129 +654 506 +589 135 +480 544 +534 610 +10 651 +722 497 +574 592 +348 307 +568 26 +506 260 +427 150 +424 46 +243 722 +145 546 +597 320 +484 620 +676 736 +171 475 +580 471 +282 304 +539 399 +291 145 +432 796 +735 389 +39 706 +676 541 +147 781 +654 696 +86 379 +188 364 +734 42 +306 268 +285 640 +29 334 +782 548 +227 425 +759 644 +552 280 +718 723 +735 164 +245 608 +660 577 +416 544 +60 649 +291 119 +607 347 +291 776 +737 491 +187 725 +58 687 +114 23 +407 274 +458 624 +424 149 +140 630 +156 796 +242 144 +178 464 +683 742 +511 775 +166 475 +74 613 +225 174 +131 444 +485 213 +318 544 +346 215 +224 391 +648 409 +147 157 +665 369 +565 232 +233 774 +424 84 +524 528 +247 116 +235 35 +38 36 +159 69 +504 371 +533 549 +370 649 +93 725 +617 72 +346 247 +783 415 +8 186 +707 211 +324 427 +202 616 +363 243 +507 770 +194 121 +436 35 +568 142 +93 514 +460 145 +151 219 +280 752 +576 282 +586 784 +340 664 +92 725 +281 421 +741 481 +294 326 +312 561 +653 314 +595 557 +196 713 +82 761 +648 668 +516 290 +271 283 +642 616 +634 239 +51 581 +49 204 +338 478 +99 549 +160 309 +258 537 +679 215 +714 401 +363 320 +740 567 +442 68 +653 554 +427 45 +693 631 +384 16 +535 240 +311 420 +719 514 +432 149 +617 787 +732 554 +542 595 +76 710 +439 103 +366 127 +380 609 +428 544 +544 613 +235 25 +287 283 +474 514 +589 241 +766 376 +699 700 +705 302 +430 728 +368 135 +138 425 +690 118 +577 327 +449 504 +786 660 +378 640 +395 540 +708 430 +674 159 +5 329 +730 13 +223 97 +345 129 +340 222 +410 369 +644 684 +750 433 +150 771 +727 74 +629 326 +641 62 +633 623 +652 727 +82 91 +26 94 +661 779 +58 393 +374 412 +518 191 +93 437 +789 436 +549 701 +596 642 +287 369 +595 487 +340 110 +278 363 +531 46 +509 439 +561 306 +296 422 +58 106 +489 615 +116 456 +600 627 +405 606 +346 753 +728 320 +306 752 +762 33 +86 52 +706 514 +527 666 +740 722 +520 568 +141 698 +135 710 +266 776 +422 527 +470 302 +312 699 +636 27 +95 445 +94 177 +340 271 +12 74 +392 271 +95 9 +728 687 +480 304 +776 515 +689 370 +65 555 +382 76 +564 664 +212 528 +591 579 +233 757 +739 58 +558 539 +703 487 +417 220 +133 421 +169 409 +428 322 +738 591 +330 146 +449 169 +444 243 +756 242 +799 280 +25 542 +18 613 +770 406 +44 309 +697 798 +280 608 +442 555 +746 610 +634 463 +15 79 +615 613 +469 233 +587 505 +512 17 +590 666 +479 412 +171 261 +505 164 +777 657 +559 60 +46 118 +268 387 +460 287 +297 762 +339 743 +589 717 +32 196 +417 197 +681 614 +648 154 +330 518 +459 453 +52 104 +370 6 +542 572 +77 165 +776 506 +379 768 +413 513 +32 29 +548 498 +459 191 +303 252 +467 583 +617 21 +267 13 +588 489 +191 628 +535 557 +242 509 +588 368 +737 786 +556 95 +309 255 +338 138 +664 73 +718 434 +92 558 +138 86 +237 660 +583 575 +725 665 +456 758 +48 100 +178 140 +506 691 +648 39 +432 295 +568 80 +16 661 +501 687 +627 622 +30 375 +157 54 +735 93 +192 159 +492 333 +661 4 +428 46 +385 763 +241 568 +140 185 +762 453 +311 8 +545 775 +171 699 +379 402 +592 122 +298 434 +637 730 +535 81 +48 85 +776 266 +147 326 +278 340 +469 641 +212 261 +330 502 +260 253 +676 669 +31 423 +559 434 +618 767 +293 719 +44 447 +476 797 +373 603 +357 169 +253 319 +87 278 +148 780 +553 99 +94 467 +798 97 +215 737 +432 65 +216 795 +107 254 +166 706 +762 241 +649 737 +338 1 +182 376 +351 489 +424 160 +99 384 +675 146 +773 356 +373 532 +430 379 +17 322 +537 356 +454 184 +292 494 +197 740 +579 263 +405 109 +717 253 +361 581 +724 725 +445 566 +568 304 +748 64 +335 49 +443 656 +555 83 +287 16 +417 673 +663 419 +718 324 +345 463 +666 80 +81 522 +698 541 +97 378 +290 3 +517 174 +303 337 +97 400 +352 75 +776 556 +772 709 +527 639 +170 359 +524 587 +133 441 +798 667 +356 436 +352 183 +247 650 +229 209 +356 725 +526 421 +24 266 +540 324 +345 227 +213 420 +476 326 +731 349 +705 431 +128 104 +134 516 +487 66 +674 177 +487 679 +122 611 +53 626 +116 517 +318 85 +376 493 +435 7 +558 689 +745 787 +356 758 +615 587 +348 309 +6 143 +722 240 +544 624 +461 65 +104 603 +59 556 +494 787 +293 652 +547 736 +794 141 +103 657 +610 667 +639 736 +515 160 +111 594 +575 530 +428 585 +678 478 +726 759 +440 206 +374 354 +621 246 +658 683 +235 20 +194 571 +583 358 +454 711 +246 560 +691 87 +800 508 +690 717 +274 410 +745 752 +752 653 +573 604 +389 702 +651 717 +482 217 +713 355 +152 179 +740 206 +144 489 +736 189 +614 350 +569 278 +513 450 +547 772 +104 580 +348 702 +320 593 +548 425 +776 518 +599 418 +357 388 +305 606 +358 246 +276 342 +200 535 +328 251 +187 630 +607 438 +377 103 +127 562 +131 599 +46 654 +228 57 +464 31 +105 438 +701 378 +710 372 +780 120 +45 193 +209 626 +706 39 +479 27 +661 734 +292 598 +261 708 +506 184 +164 97 +52 633 +254 403 +405 796 +35 523 +612 613 +200 436 +193 136 +687 27 +373 453 +41 765 +251 583 +489 638 +608 517 +227 266 +594 68 +54 513 +255 336 +152 394 +138 235 +307 304 +447 598 +665 696 +414 648 +179 652 +782 686 +460 408 +267 21 +87 253 +155 798 +210 394 +723 213 +3 378 +96 592 +92 723 +37 19 +329 412 +547 468 +703 669 +622 60 +221 539 +476 60 +40 75 +506 168 +345 490 +369 329 +58 429 +20 746 +662 4 +699 631 +114 794 +641 702 +294 85 +451 128 +730 9 +496 443 +302 12 +67 485 +561 599 +683 719 +755 741 +298 410 +562 673 +798 486 +186 781 +244 206 +701 194 +497 448 +711 726 +668 709 +666 489 +147 443 +244 636 +548 537 +108 729 +97 619 +263 77 +442 515 +486 165 +502 608 +330 633 +515 12 +91 37 +684 75 +719 97 +229 533 +299 671 +465 50 +533 189 +493 55 +498 590 +582 304 +312 549 +329 513 +63 341 +259 425 +682 609 +725 348 +33 558 +508 70 +342 28 +544 724 +165 355 +787 305 +436 443 +340 6 +498 234 +12 92 +530 275 +702 158 +272 16 +91 445 +328 82 +139 83 +762 457 +417 368 +783 233 +235 252 +153 204 +646 164 +393 404 +361 226 +276 436 +462 628 +416 59 +316 620 +207 104 +501 629 +628 19 +693 233 +628 323 +765 717 +277 351 +593 302 +312 5 +425 442 +134 601 +221 795 +378 434 +636 326 +142 48 +89 771 +506 284 +731 458 +773 435 +292 606 +401 526 +500 23 +489 525 +561 563 +269 125 +413 236 +565 394 +734 666 +49 629 +526 695 +33 453 +697 245 +221 590 +224 608 +181 251 +173 312 +649 477 +364 356 +336 749 +727 685 +684 52 +366 494 +495 664 +641 788 +662 617 +537 217 +432 100 +608 160 +384 36 +361 45 +111 496 +599 99 +346 318 +643 107 +419 63 +203 126 +44 359 +89 85 +494 401 +708 682 +110 428 +614 99 +674 505 +15 212 +580 684 +26 17 +736 442 +721 598 +670 476 +798 92 +193 273 +557 128 +495 162 +167 751 +127 622 +220 632 +448 737 +753 487 +181 630 +545 710 +194 447 +573 746 +111 422 +706 444 +67 700 +126 218 +112 317 +507 404 +355 87 +695 10 +687 398 +55 103 +502 235 +163 179 +732 578 +575 185 +189 454 +761 524 +385 503 +290 517 +760 302 +68 752 +122 292 +480 778 +334 97 +790 618 +506 446 +288 33 +721 18 +83 8 +586 436 +569 349 +313 64 +468 428 +666 402 +620 64 +743 505 +129 298 +88 499 +604 722 +324 424 +593 288 +329 744 +219 445 +374 168 +481 316 +347 29 +790 474 +665 73 +393 176 +145 16 +336 108 +690 546 +258 663 +603 35 +569 719 +598 537 +318 668 +6 422 +622 594 +101 209 +566 444 +541 308 +153 665 +763 605 +521 488 +797 113 +679 393 +191 605 +375 554 +313 392 +337 779 +209 418 +591 382 +788 282 +509 59 +52 466 +754 791 +477 470 +175 614 +62 35 +373 5 +598 146 +100 261 +677 274 +454 307 +641 1 +283 430 +330 693 +779 341 +736 30 +101 196 +385 163 +138 692 +566 73 +16 630 +220 300 +760 305 +747 362 +86 243 +672 669 +662 735 +476 351 +550 166 +663 543 +688 747 +764 649 +252 707 +108 243 +137 127 +418 256 +647 202 +651 751 +562 58 +206 400 +395 502 +127 491 +324 152 +56 639 +686 550 +799 214 +43 164 +492 506 +497 223 +726 447 +434 690 +569 446 +42 358 +302 365 +685 420 +446 239 +656 296 +207 374 +410 7 +736 486 +283 204 +341 218 +253 447 +242 785 +737 399 +576 663 +744 578 +75 658 +27 71 +383 319 +537 227 +476 99 +536 574 +58 632 +758 76 +390 325 +568 465 +603 575 +596 337 +436 421 +21 370 +474 134 +730 423 +479 237 +59 459 +522 282 +492 364 +381 210 +655 758 +411 383 +93 517 +443 355 +601 47 +328 462 +435 169 +385 495 +33 649 +632 470 +728 50 +760 528 +545 15 +613 396 +290 767 +149 533 +702 51 +666 739 +721 316 +699 438 +766 353 +711 546 +466 348 +101 733 +286 73 +655 178 +283 302 +379 353 +751 428 +533 396 +44 124 +694 709 +234 633 +782 660 +523 639 +568 548 +661 741 +85 142 +660 331 +596 535 +17 164 +783 198 +123 49 +521 320 +99 474 +349 560 +175 330 +576 620 +130 459 +184 305 +229 754 +28 613 +329 713 +546 487 +717 3 +455 417 +75 770 +794 196 +547 487 +168 191 +714 453 +764 323 +678 650 +733 548 +631 537 +753 372 +150 73 +121 595 +781 271 +310 15 +420 412 +714 349 +90 781 +301 525 +417 476 +681 418 +82 439 +491 752 +761 705 +47 367 +678 778 +704 210 +535 329 +340 195 +122 439 +410 174 +371 558 +134 116 +719 399 +709 36 +281 40 +482 608 +139 360 +477 546 +304 193 +504 570 +465 724 +125 217 +555 487 +8 313 +770 775 +688 771 +452 174 +798 621 +743 404 +276 454 +773 360 +159 402 +578 573 +191 695 +289 621 +61 586 +54 786 +462 532 +196 527 +392 567 +646 33 +455 769 +345 798 +36 550 +414 546 +355 794 +568 493 +16 484 +755 466 +549 507 +154 168 +247 282 +589 160 +187 349 +477 175 +224 676 +21 39 +252 404 +761 724 +433 213 +200 591 +128 404 +356 2 +796 6 +352 184 +713 188 +660 484 +116 265 +673 617 +102 140 +687 274 +437 284 +545 592 +536 15 +402 35 +276 604 +739 206 +258 432 +330 558 +542 576 +57 637 +494 720 +489 186 +124 700 +269 99 +553 376 +105 728 +699 727 +468 545 +262 66 +515 756 +380 515 +508 86 +485 439 +41 473 +20 132 +778 470 +54 611 +642 654 +27 741 +518 37 +50 654 +55 481 +800 670 +615 588 +258 703 +451 748 +687 483 +49 731 +712 493 +617 493 +378 318 +412 459 +157 252 +129 311 +24 485 +348 76 +395 346 +13 771 +110 81 +254 282 +343 93 +192 747 +640 674 +177 345 +491 366 +761 449 +589 155 +40 38 +558 107 +123 450 +335 318 +197 181 +783 205 +529 460 +416 380 +309 20 +208 409 +716 204 +63 525 +151 293 +406 480 +241 132 +664 770 +283 707 +659 562 +606 363 +22 546 +189 714 +274 541 +306 194 +673 145 +441 230 +137 323 +651 650 +176 413 +83 298 +399 88 +412 386 +184 373 +570 797 +171 246 +305 463 +787 452 +712 684 +348 207 +212 284 +294 495 +800 563 +503 466 +271 579 +756 711 +645 44 +63 113 +272 189 +571 229 +21 414 +56 122 +468 758 +629 624 +462 449 +458 666 +578 199 +450 436 +273 638 +451 738 +128 566 +648 622 +735 697 +23 235 +687 740 +272 141 +644 355 +268 48 +649 121 +183 774 +732 538 +365 398 +188 391 +795 202 +713 753 +18 674 +304 262 +528 292 +472 551 +118 641 diff --git a/algorithms/lab06/tests/02-dfs/8.ref b/algorithms/lab06/tests/02-dfs/8.ref new file mode 100644 index 0000000..b4de394 --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/8.ref @@ -0,0 +1 @@ +11 diff --git a/algorithms/lab06/tests/02-dfs/9.in b/algorithms/lab06/tests/02-dfs/9.in new file mode 100644 index 0000000..95bd7d4 --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/9.in @@ -0,0 +1,2701 @@ +900 2700 +834 824 +759 276 +895 129 +892 83 +388 300 +819 466 +198 615 +17 706 +415 487 +172 198 +890 675 +464 891 +538 484 +192 782 +564 687 +407 133 +26 402 +319 765 +26 164 +583 548 +875 387 +714 814 +499 303 +1 174 +858 237 +249 579 +178 856 +273 441 +687 503 +595 259 +738 123 +195 334 +404 184 +160 795 +646 288 +564 657 +535 21 +812 862 +715 485 +805 439 +364 254 +576 681 +648 291 +412 353 +36 375 +617 508 +515 369 +21 897 +416 291 +231 572 +434 640 +866 411 +166 469 +875 785 +561 279 +738 171 +395 386 +699 35 +112 145 +59 327 +874 379 +143 636 +328 606 +311 631 +276 228 +899 900 +341 432 +728 276 +173 410 +29 594 +56 895 +672 185 +406 771 +757 408 +675 827 +272 836 +253 479 +625 770 +45 449 +541 436 +116 218 +628 103 +884 420 +84 580 +370 808 +885 102 +307 801 +688 215 +751 260 +577 535 +859 824 +571 696 +772 743 +134 696 +429 757 +701 667 +357 156 +376 425 +315 459 +808 125 +227 249 +583 631 +269 349 +165 105 +595 368 +637 97 +877 452 +440 738 +478 633 +55 667 +568 521 +368 185 +287 239 +760 785 +138 523 +565 533 +637 873 +2 701 +483 159 +64 241 +628 534 +27 146 +155 486 +230 430 +172 470 +429 220 +753 851 +506 332 +431 852 +436 241 +742 57 +592 264 +743 849 +299 157 +379 645 +170 886 +588 393 +344 588 +378 28 +167 26 +844 774 +579 597 +880 565 +59 861 +501 544 +334 499 +268 521 +429 219 +207 442 +52 215 +599 880 +239 710 +170 104 +611 94 +551 675 +105 883 +26 316 +387 522 +818 123 +303 165 +743 856 +847 608 +577 610 +155 748 +876 105 +347 235 +244 861 +129 867 +17 696 +885 558 +322 450 +438 871 +847 769 +670 656 +890 161 +13 785 +635 255 +363 228 +713 145 +475 845 +853 26 +741 284 +99 482 +475 20 +160 779 +502 639 +261 302 +763 536 +79 396 +56 378 +402 535 +637 775 +753 441 +588 627 +75 538 +309 140 +423 580 +686 47 +28 898 +499 404 +579 728 +255 181 +162 876 +743 206 +523 791 +199 105 +391 426 +219 722 +252 133 +888 887 +414 531 +294 321 +489 307 +716 579 +156 21 +104 436 +408 213 +219 302 +601 339 +712 415 +854 234 +130 772 +401 513 +42 568 +611 284 +428 465 +229 557 +564 440 +106 736 +116 512 +491 163 +389 777 +200 433 +693 601 +803 397 +832 439 +507 710 +672 177 +194 38 +27 890 +892 769 +216 662 +374 845 +688 897 +83 326 +823 134 +22 622 +191 25 +228 645 +448 812 +117 601 +863 752 +131 478 +359 595 +61 248 +774 91 +155 122 +728 85 +163 68 +382 433 +65 626 +658 360 +685 397 +244 732 +430 523 +138 541 +861 401 +695 796 +730 132 +897 211 +235 110 +224 552 +759 137 +673 323 +346 811 +582 99 +610 657 +633 305 +306 718 +95 206 +810 28 +124 496 +777 550 +723 98 +845 481 +600 540 +603 593 +62 437 +533 668 +189 740 +89 122 +646 601 +329 738 +291 235 +399 685 +675 7 +236 426 +301 305 +579 697 +389 818 +405 636 +702 427 +763 546 +22 739 +824 295 +276 503 +494 277 +158 803 +592 518 +433 762 +375 678 +459 800 +520 104 +733 832 +539 74 +85 331 +91 457 +1 646 +273 503 +261 464 +784 869 +675 41 +584 161 +220 765 +106 267 +316 684 +418 385 +819 506 +477 720 +892 176 +139 394 +391 147 +473 47 +777 431 +367 448 +754 855 +123 154 +256 716 +297 572 +420 414 +315 860 +170 677 +537 271 +233 751 +192 608 +465 21 +64 403 +800 833 +598 821 +122 479 +445 426 +762 178 +864 323 +474 840 +61 146 +632 626 +425 608 +493 689 +751 682 +72 513 +120 277 +869 285 +766 763 +96 120 +306 167 +558 608 +440 176 +259 593 +565 129 +294 130 +649 6 +444 346 +154 713 +521 842 +718 32 +291 298 +750 421 +565 674 +727 780 +715 628 +850 586 +317 767 +392 731 +550 520 +376 266 +270 88 +96 440 +301 608 +489 709 +182 246 +719 887 +698 475 +336 641 +402 457 +241 869 +541 675 +106 21 +548 699 +71 683 +143 475 +723 140 +84 684 +811 523 +34 613 +365 651 +758 510 +819 90 +350 139 +106 344 +313 161 +230 329 +213 1 +66 495 +862 840 +257 158 +343 31 +602 531 +295 637 +99 437 +90 743 +182 728 +378 568 +804 52 +292 245 +188 352 +250 350 +684 657 +557 445 +148 273 +515 522 +555 295 +138 193 +374 601 +445 73 +111 102 +303 21 +422 511 +563 142 +671 740 +151 708 +748 395 +54 333 +706 666 +649 438 +807 797 +115 667 +112 548 +267 122 +672 219 +333 335 +788 594 +793 556 +179 88 +107 888 +850 525 +219 504 +516 386 +250 24 +687 519 +845 271 +635 754 +393 625 +744 105 +51 173 +128 198 +740 570 +844 352 +824 721 +437 535 +774 791 +841 786 +881 132 +491 807 +444 361 +896 347 +366 329 +492 673 +60 4 +200 639 +472 663 +446 730 +239 473 +531 540 +425 646 +35 369 +365 49 +344 217 +868 864 +712 184 +831 607 +332 399 +472 824 +39 559 +754 350 +797 665 +186 535 +95 247 +745 677 +870 490 +336 188 +29 562 +741 406 +828 521 +714 321 +119 365 +356 59 +567 322 +151 23 +543 700 +383 290 +357 472 +180 28 +617 262 +837 796 +380 73 +255 304 +423 568 +844 323 +267 479 +239 447 +719 628 +122 361 +104 26 +238 335 +33 852 +160 483 +702 367 +584 710 +317 99 +536 389 +586 81 +688 670 +876 357 +402 420 +866 314 +360 162 +388 867 +210 398 +687 715 +386 279 +749 154 +35 617 +728 821 +678 698 +477 454 +654 792 +411 715 +671 693 +897 369 +734 216 +200 126 +429 335 +403 19 +589 743 +656 340 +440 710 +557 726 +652 604 +286 665 +741 248 +572 737 +882 11 +886 146 +714 875 +554 327 +338 583 +880 129 +700 895 +609 767 +351 291 +594 338 +389 547 +162 324 +168 52 +816 593 +623 574 +484 404 +705 680 +534 366 +425 776 +756 760 +866 865 +793 841 +432 73 +792 1 +33 345 +245 76 +315 325 +110 348 +698 360 +774 518 +699 714 +329 278 +720 249 +460 62 +791 818 +649 240 +158 384 +111 96 +547 87 +637 392 +294 50 +359 313 +209 115 +42 582 +636 154 +532 561 +731 900 +165 374 +417 611 +496 78 +48 816 +504 428 +434 775 +158 538 +546 414 +429 151 +111 293 +755 502 +160 277 +435 45 +632 895 +187 385 +763 92 +840 275 +394 34 +110 135 +894 777 +869 740 +771 616 +189 416 +449 633 +20 234 +385 383 +552 259 +397 566 +8 176 +553 560 +280 197 +559 480 +544 603 +380 331 +207 688 +335 341 +194 125 +597 86 +651 565 +329 806 +675 313 +664 651 +871 592 +108 837 +739 649 +56 860 +81 650 +499 612 +437 174 +78 167 +895 76 +499 195 +98 29 +222 862 +542 886 +215 669 +513 622 +143 229 +340 63 +669 525 +847 186 +578 598 +301 42 +160 227 +250 595 +449 466 +881 452 +438 707 +97 481 +549 339 +715 735 +747 533 +732 824 +648 175 +250 809 +132 307 +822 353 +542 834 +283 677 +353 826 +605 294 +441 382 +440 2 +812 158 +748 648 +656 445 +669 2 +723 57 +761 577 +147 868 +626 9 +439 12 +283 526 +156 97 +575 705 +88 745 +72 776 +215 428 +722 64 +582 352 +741 876 +882 536 +99 831 +126 609 +306 294 +564 491 +372 457 +455 663 +458 223 +553 698 +451 283 +321 833 +484 554 +191 249 +610 618 +411 868 +231 562 +781 657 +473 500 +790 534 +290 758 +674 146 +817 885 +894 445 +237 707 +41 755 +865 353 +62 8 +107 649 +198 276 +282 386 +160 299 +687 233 +456 85 +757 570 +898 886 +588 433 +509 496 +561 476 +385 872 +19 587 +662 601 +836 493 +844 417 +280 468 +564 166 +261 4 +736 372 +866 177 +604 586 +117 780 +723 496 +543 190 +78 102 +676 843 +213 46 +1 76 +488 502 +252 497 +542 329 +479 217 +224 85 +705 646 +532 75 +700 677 +670 357 +632 166 +490 812 +288 517 +650 681 +71 261 +150 302 +275 474 +898 618 +435 31 +24 339 +506 288 +506 841 +28 571 +127 156 +159 67 +877 522 +736 829 +239 446 +475 336 +103 478 +179 668 +818 566 +688 516 +446 804 +775 443 +443 341 +245 310 +816 481 +29 804 +287 516 +243 90 +243 763 +874 566 +434 337 +840 221 +280 371 +217 753 +854 292 +837 212 +271 802 +635 588 +203 857 +705 96 +116 872 +1 824 +360 592 +760 69 +136 551 +691 422 +547 246 +300 884 +765 90 +794 78 +887 460 +25 566 +500 725 +709 330 +554 559 +567 833 +759 879 +108 654 +452 676 +81 31 +478 632 +233 654 +53 707 +471 284 +133 528 +824 117 +26 445 +769 203 +43 234 +196 555 +46 124 +349 380 +140 159 +812 618 +578 791 +318 853 +598 399 +216 21 +796 167 +772 358 +677 574 +890 92 +138 817 +504 878 +168 592 +625 504 +264 519 +269 246 +379 197 +215 822 +516 818 +10 419 +92 275 +189 240 +783 308 +523 53 +309 476 +74 97 +4 299 +680 541 +456 55 +271 815 +425 204 +115 85 +680 569 +85 587 +188 368 +109 358 +612 728 +297 69 +210 724 +756 844 +35 434 +22 520 +844 226 +41 373 +833 296 +457 398 +277 590 +32 549 +259 438 +38 141 +225 109 +818 731 +631 677 +715 721 +459 503 +168 612 +258 189 +115 123 +342 250 +875 151 +187 663 +814 383 +283 32 +676 440 +682 114 +229 900 +815 723 +225 797 +73 301 +427 790 +695 267 +846 308 +768 651 +258 325 +27 164 +866 63 +437 718 +525 303 +454 562 +705 761 +223 128 +212 472 +95 492 +283 841 +432 114 +480 330 +148 838 +377 590 +223 427 +566 590 +127 798 +167 102 +432 793 +46 594 +156 303 +468 170 +133 307 +818 199 +251 885 +714 493 +137 176 +404 393 +213 380 +398 343 +290 132 +256 584 +854 132 +528 293 +314 674 +450 177 +591 827 +526 485 +350 19 +362 534 +810 848 +881 173 +49 896 +776 51 +525 137 +536 711 +696 20 +18 500 +235 548 +637 789 +334 356 +629 548 +249 817 +564 469 +160 882 +150 747 +429 847 +506 428 +897 385 +798 43 +515 825 +61 26 +570 560 +637 584 +836 779 +109 393 +139 371 +522 457 +406 224 +579 865 +716 311 +874 497 +269 340 +666 34 +156 607 +525 736 +319 876 +740 727 +854 99 +7 287 +611 496 +250 887 +146 708 +162 178 +103 756 +733 595 +333 244 +477 116 +726 779 +421 258 +525 326 +494 176 +249 858 +278 733 +848 91 +149 583 +163 550 +105 664 +882 419 +630 184 +737 651 +457 652 +900 556 +314 887 +236 51 +373 465 +642 693 +761 691 +39 760 +683 602 +523 867 +334 129 +223 137 +410 616 +93 241 +823 575 +424 135 +250 685 +810 572 +135 692 +829 23 +158 374 +249 128 +537 156 +504 239 +233 640 +391 741 +879 294 +663 192 +125 197 +750 455 +259 603 +306 805 +15 471 +650 152 +304 734 +642 471 +522 402 +285 202 +215 10 +550 367 +368 92 +23 797 +728 792 +580 801 +554 788 +3 648 +210 527 +658 174 +685 479 +449 510 +570 615 +877 550 +868 428 +801 891 +808 418 +827 125 +841 557 +4 664 +439 875 +250 284 +93 528 +285 854 +529 422 +467 259 +175 638 +205 361 +636 894 +313 121 +380 221 +870 487 +13 604 +650 105 +625 394 +407 186 +426 746 +650 516 +47 719 +861 414 +595 559 +511 555 +650 773 +782 672 +686 330 +889 562 +262 244 +46 614 +314 658 +270 511 +716 128 +420 314 +348 474 +753 239 +191 652 +395 19 +831 174 +515 508 +693 403 +212 576 +328 65 +85 488 +368 89 +178 125 +784 290 +543 218 +417 504 +525 70 +56 93 +138 514 +364 317 +691 565 +51 598 +97 365 +246 737 +336 128 +458 16 +577 796 +248 376 +185 398 +73 76 +86 751 +204 495 +409 639 +255 821 +320 72 +438 64 +820 125 +816 844 +147 890 +360 316 +585 22 +550 246 +249 426 +87 382 +90 466 +291 552 +259 312 +716 338 +864 559 +560 573 +149 391 +633 703 +386 489 +45 598 +355 852 +881 271 +170 65 +598 21 +621 595 +433 884 +550 467 +561 505 +891 510 +720 69 +278 861 +543 728 +310 192 +587 135 +900 385 +206 833 +218 434 +165 197 +164 700 +221 228 +741 426 +623 508 +759 657 +59 202 +236 296 +6 600 +180 647 +864 821 +626 474 +859 555 +668 312 +119 819 +497 865 +760 246 +517 119 +744 52 +165 792 +733 615 +640 360 +759 482 +667 374 +48 322 +26 699 +196 117 +815 849 +658 23 +710 695 +453 885 +522 611 +364 599 +333 129 +463 774 +385 572 +105 131 +793 248 +460 156 +842 584 +732 543 +521 442 +436 776 +869 265 +311 185 +633 890 +837 552 +229 323 +59 329 +633 809 +376 361 +461 726 +190 101 +785 205 +809 698 +267 338 +501 570 +627 508 +497 412 +248 653 +833 57 +487 600 +48 872 +351 687 +246 770 +30 310 +104 345 +349 787 +427 698 +12 753 +416 839 +141 610 +714 633 +646 410 +477 208 +584 284 +323 544 +195 643 +844 389 +326 542 +682 586 +515 71 +128 86 +83 568 +44 326 +485 535 +357 261 +377 565 +624 53 +844 768 +194 163 +602 181 +464 775 +877 475 +441 734 +396 331 +301 696 +539 134 +738 37 +828 826 +617 643 +534 823 +55 321 +872 454 +691 455 +135 185 +554 384 +209 837 +497 241 +819 666 +38 281 +403 541 +99 253 +559 888 +378 711 +517 559 +711 779 +873 12 +21 195 +711 337 +834 80 +754 602 +808 457 +103 655 +541 365 +316 191 +456 818 +756 706 +385 430 +565 560 +718 680 +386 278 +437 842 +805 835 +578 827 +767 124 +189 805 +545 707 +63 742 +117 785 +505 559 +859 845 +193 728 +664 734 +784 868 +426 767 +770 379 +339 869 +164 783 +879 305 +106 175 +389 291 +813 130 +352 631 +753 416 +598 281 +180 601 +112 456 +310 491 +750 247 +518 859 +161 387 +739 668 +784 793 +811 299 +807 7 +312 335 +525 27 +610 513 +795 711 +43 86 +318 384 +45 247 +874 237 +782 783 +154 708 +684 625 +371 319 +210 100 +798 31 +48 159 +740 644 +333 895 +28 608 +407 511 +517 168 +508 557 +882 138 +465 4 +172 241 +630 767 +238 591 +128 660 +728 4 +290 27 +488 162 +600 551 +221 188 +313 264 +582 410 +249 137 +638 233 +459 888 +707 771 +118 686 +216 202 +401 705 +550 877 +659 634 +532 894 +474 387 +707 254 +706 364 +46 661 +440 84 +879 554 +298 233 +112 306 +196 570 +574 44 +179 677 +241 490 +164 348 +814 365 +133 388 +285 578 +68 656 +595 509 +61 840 +498 690 +287 62 +73 876 +270 638 +227 473 +306 383 +730 737 +231 52 +583 125 +229 448 +893 595 +126 226 +831 830 +136 357 +511 312 +515 553 +739 485 +710 619 +291 451 +899 741 +674 125 +197 404 +461 271 +881 150 +555 273 +434 246 +205 210 +295 99 +375 697 +223 781 +569 283 +195 3 +654 563 +624 244 +97 436 +673 536 +458 575 +754 516 +815 629 +93 701 +333 510 +253 510 +419 133 +597 572 +404 46 +726 703 +385 716 +377 319 +553 323 +320 794 +93 473 +643 147 +162 888 +164 306 +217 283 +620 530 +429 68 +339 222 +63 106 +105 156 +888 832 +603 143 +356 647 +103 590 +318 828 +357 731 +587 131 +86 821 +474 732 +557 35 +241 831 +775 418 +849 843 +519 637 +479 161 +892 165 +516 38 +662 769 +494 340 +896 290 +350 33 +778 773 +761 543 +182 826 +140 832 +844 326 +740 411 +678 236 +772 586 +601 805 +97 563 +597 55 +882 503 +496 8 +309 375 +894 249 +804 530 +152 206 +578 312 +832 837 +895 727 +268 191 +77 237 +748 63 +185 808 +522 63 +410 708 +808 56 +590 848 +169 111 +853 884 +330 33 +314 513 +451 546 +784 293 +336 410 +349 163 +752 10 +572 266 +137 427 +308 177 +591 490 +87 786 +50 612 +666 557 +110 535 +74 562 +309 226 +506 31 +84 502 +676 809 +801 445 +147 497 +233 346 +826 629 +572 166 +41 26 +111 273 +53 112 +858 212 +692 441 +737 365 +238 815 +586 231 +527 205 +673 266 +699 251 +272 63 +478 669 +795 309 +472 886 +134 416 +697 344 +455 27 +15 797 +631 690 +47 507 +887 46 +632 333 +620 415 +22 158 +646 379 +646 487 +899 143 +255 730 +219 354 +735 277 +56 560 +726 780 +83 3 +361 30 +634 117 +612 456 +490 477 +593 560 +151 516 +218 812 +680 609 +182 876 +455 222 +406 86 +194 468 +522 274 +232 438 +848 132 +556 306 +638 165 +334 760 +264 817 +633 198 +806 117 +712 231 +663 388 +654 884 +189 362 +16 506 +439 374 +796 55 +897 122 +701 560 +842 602 +670 189 +149 35 +54 6 +708 162 +289 807 +589 774 +618 73 +378 655 +654 493 +515 130 +619 496 +796 241 +89 211 +527 842 +894 825 +766 827 +814 638 +860 812 +734 132 +225 816 +546 94 +555 431 +507 327 +312 61 +561 181 +413 108 +405 884 +490 507 +856 22 +647 391 +381 857 +238 391 +355 165 +674 513 +564 487 +264 868 +145 11 +859 852 +401 664 +223 795 +39 393 +373 668 +412 666 +134 143 +167 835 +895 19 +301 713 +147 390 +585 9 +828 67 +157 470 +366 591 +650 303 +623 20 +705 389 +566 157 +534 797 +146 260 +492 219 +613 722 +238 662 +543 473 +134 741 +755 731 +542 403 +861 609 +740 343 +153 773 +567 708 +169 354 +544 325 +273 91 +484 856 +156 811 +787 21 +576 873 +277 770 +630 53 +545 111 +419 459 +291 705 +617 688 +793 329 +144 301 +135 797 +591 68 +798 362 +630 19 +671 730 +465 289 +247 512 +179 119 +274 891 +506 161 +593 565 +135 471 +342 70 +705 531 +886 183 +228 50 +569 325 +152 620 +692 818 +75 836 +770 226 +765 373 +487 619 +846 543 +105 78 +378 416 +46 197 +468 466 +190 243 +140 337 +68 377 +661 698 +401 583 +777 786 +680 599 +302 817 +666 799 +290 159 +133 799 +862 93 +331 119 +431 409 +334 759 +454 763 +20 866 +603 656 +147 19 +32 740 +755 816 +803 546 +228 846 +483 417 +177 613 +708 279 +800 373 +492 703 +402 460 +711 746 +658 504 +493 578 +135 241 +376 208 +174 641 +809 373 +737 865 +763 90 +554 382 +758 568 +182 243 +453 284 +233 644 +317 201 +238 772 +319 444 +689 552 +487 62 +881 530 +392 367 +180 644 +806 35 +392 193 +695 271 +46 798 +521 456 +219 10 +710 439 +610 463 +523 842 +799 515 +468 645 +282 796 +718 354 +569 95 +667 649 +451 174 +73 886 +297 468 +73 725 +378 1 +403 430 +720 80 +107 707 +628 226 +830 644 +252 212 +832 711 +212 564 +115 358 +702 197 +673 765 +784 332 +233 506 +51 401 +671 593 +852 837 +417 869 +463 590 +266 674 +84 805 +885 458 +789 404 +193 62 +362 53 +129 492 +800 862 +373 760 +522 161 +401 713 +762 260 +108 578 +116 372 +837 375 +325 798 +626 131 +520 642 +501 266 +866 180 +798 685 +606 407 +715 255 +725 767 +489 732 +229 546 +613 319 +275 659 +371 681 +550 457 +779 289 +252 834 +349 294 +6 837 +39 273 +613 642 +862 830 +762 817 +856 548 +75 832 +85 743 +649 756 +83 490 +105 152 +787 623 +401 281 +522 700 +387 705 +346 869 +349 821 +640 45 +32 635 +260 128 +678 806 +751 222 +447 151 +216 142 +525 55 +84 860 +400 103 +171 232 +89 552 +888 735 +750 864 +679 291 +261 309 +203 848 +891 111 +722 116 +202 552 +620 669 +38 299 +759 52 +863 740 +211 617 +611 523 +132 714 +632 876 +26 732 +87 835 +796 651 +721 857 +112 697 +514 467 +89 723 +66 374 +565 896 +191 360 +400 76 +480 833 +364 218 +490 164 +621 13 +485 812 +91 71 +293 730 +3 211 +374 132 +732 445 +81 179 +329 135 +517 396 +813 840 +742 859 +485 20 +790 106 +379 3 +226 592 +645 299 +743 527 +42 627 +384 159 +879 649 +368 14 +84 401 +264 301 +423 669 +182 359 +569 138 +24 301 +513 312 +448 747 +159 350 +544 73 +61 526 +361 329 +136 889 +854 316 +507 477 +561 55 +576 765 +135 56 +305 428 +523 612 +390 213 +556 341 +693 673 +701 577 +444 521 +2 735 +252 889 +34 379 +570 280 +793 374 +564 302 +703 422 +895 774 +437 256 +664 748 +863 387 +842 896 +531 460 +375 302 +714 244 +61 600 +176 498 +500 735 +40 152 +298 381 +34 782 +349 656 +653 639 +554 117 +538 697 +817 205 +510 341 +532 103 +473 879 +555 104 +4 176 +17 506 +885 369 +581 271 +639 84 +567 357 +78 877 +459 443 +11 89 +832 863 +49 392 +370 796 +154 547 +669 243 +593 633 +471 638 +405 292 +839 169 +774 434 +282 413 +314 778 +399 338 +344 504 +425 548 +150 297 +16 330 +843 55 +125 6 +693 374 +506 107 +446 756 +50 509 +621 840 +189 515 +234 488 +541 118 +18 834 +262 4 +527 676 +242 408 +805 770 +233 301 +17 289 +591 776 +13 450 +164 828 +674 109 +589 694 +141 244 +576 116 +269 196 +394 93 +73 873 +592 141 +279 234 +177 876 +553 468 +395 736 +447 575 +607 348 +627 62 +296 147 +742 310 +381 548 +849 379 +167 884 +467 268 +852 756 +438 884 +697 656 +340 775 +159 813 +271 521 +430 235 +372 866 +612 513 +520 897 +861 89 +487 801 +701 470 +671 396 +739 336 +606 383 +692 432 +300 747 +46 717 +128 159 +293 254 +244 383 +795 879 +636 562 +86 733 +737 27 +548 185 +848 562 +345 807 +687 143 +769 851 +747 81 +384 862 +524 131 +154 645 +384 140 +818 518 +215 866 +350 219 +852 678 +541 421 +308 57 +384 843 +339 756 +90 141 +296 401 +827 368 +766 196 +581 124 +774 876 +799 171 +436 299 +633 162 +710 440 +292 895 +396 860 +726 594 +45 350 +699 680 +893 708 +373 708 +157 700 +603 206 +64 185 +167 612 +448 105 +492 840 +794 509 +49 824 +573 646 +882 544 +119 149 +422 751 +120 297 +695 761 +699 748 +673 279 +571 744 +173 100 +891 470 +392 729 +442 572 +884 331 +120 273 +175 345 +237 537 +691 90 +684 9 +349 98 +445 751 +634 361 +696 448 +596 505 +492 555 +58 795 +185 194 +71 249 +303 226 +893 613 +400 519 +829 687 +684 341 +717 432 +426 870 +694 590 +58 121 +223 294 +879 57 +27 386 +131 751 +172 306 +864 833 +100 366 +457 410 +206 15 +535 102 +252 817 +643 169 +835 877 +246 86 +215 478 +818 648 +363 253 +388 206 +876 522 +483 844 +446 366 +438 790 +698 514 +355 224 +279 832 +473 439 +327 746 +340 499 +412 839 +435 233 +404 48 +866 93 +597 714 +687 499 +731 233 +291 475 +395 214 +496 889 +462 503 +95 32 +638 342 +23 541 +746 425 +880 704 +630 187 +849 293 +850 5 +593 758 +528 320 +259 14 +677 443 +553 309 +118 434 +452 686 +681 182 +699 657 +203 161 +177 41 +287 190 +686 371 +125 891 +546 64 +89 13 +181 421 +105 433 +334 644 +600 557 +824 808 +104 687 +333 500 +455 255 +273 249 +709 598 +508 475 +46 412 +298 166 +483 200 +100 576 +482 340 +26 734 +141 687 +866 298 +193 592 +869 89 +622 315 +455 470 +153 897 +271 355 +250 179 +212 494 +343 750 +183 502 +747 74 +468 552 +261 404 +311 532 +519 64 +625 79 +81 368 +10 336 +765 293 +185 266 +841 521 +271 706 +158 435 +3 658 +73 193 +220 826 +634 219 +332 139 +631 322 +534 156 +419 415 +132 519 +358 557 +720 157 +71 385 +743 88 +685 196 +401 540 +739 782 +312 103 +200 623 +404 140 +397 217 +743 821 +465 166 +457 68 +126 147 +534 645 +20 166 +91 518 +77 797 +267 857 +594 559 +670 645 +695 705 +290 875 +686 683 +95 42 +825 854 +720 60 +330 47 +480 717 +131 768 +888 442 +802 521 +32 182 +820 334 +880 224 +606 59 +783 38 +261 371 +610 370 +297 871 +287 261 +204 803 +132 730 +407 689 +130 257 +223 299 +205 653 +866 857 +247 840 +406 526 +59 501 +804 129 +86 472 +680 394 +188 316 +537 489 +674 181 +394 511 +797 446 +770 487 +617 764 +494 1 +487 424 +649 879 +38 374 +746 641 +261 491 +591 396 +184 881 +129 456 +503 498 +9 25 +830 349 +656 727 +880 299 +532 585 +1 405 +806 826 +180 186 +194 477 +252 59 +682 252 +436 767 +783 719 +98 567 +353 687 +480 900 +148 667 +312 309 +886 560 +307 434 +506 838 +634 279 +517 849 +386 566 +340 579 +496 849 +249 814 +766 714 +767 757 +169 433 +128 93 +201 714 +499 623 +519 624 +214 674 +578 180 +230 871 +29 350 +490 499 +613 130 +571 434 +879 550 +387 188 +221 340 +352 238 +413 111 +776 17 +190 420 +170 210 +777 603 +635 365 +622 884 +847 334 +784 894 +898 680 +160 237 +459 345 +335 663 +101 786 +66 796 +127 103 +685 823 +151 468 +769 421 +24 381 +157 398 +228 138 +398 214 +199 218 +534 664 +565 192 +680 610 +142 707 +702 755 +635 596 +470 268 +346 234 +441 341 +6 397 +800 245 +690 403 +625 326 +379 778 +269 667 +827 50 +529 367 +717 372 +630 356 +145 478 +320 865 +335 689 +811 156 +161 241 +505 824 +727 781 +436 297 +226 857 +262 239 +284 794 +771 742 +303 804 +31 666 +530 464 +58 754 +291 204 +614 512 +337 706 +361 90 +168 891 +379 876 +563 846 +522 680 +316 874 +471 611 +170 535 +329 536 +199 292 +389 151 +163 234 +700 828 +608 728 +500 226 +199 666 +66 629 +591 884 +554 201 +402 419 +74 394 +801 692 +806 408 +728 495 +96 836 +866 377 +866 873 +335 485 +232 214 +518 784 +501 587 +750 535 +2 519 +625 598 +440 266 +32 377 +272 460 +593 334 +205 498 +128 539 +65 283 +14 855 +681 439 +570 831 +393 562 +124 642 +768 238 +391 322 +697 808 +336 859 +299 457 +515 778 +279 364 +838 885 +692 762 +368 820 +253 727 +723 214 +807 159 +426 594 +488 683 +264 12 +23 648 +48 65 +888 804 +679 833 +241 542 +709 146 +524 318 +782 93 +781 626 +229 393 +114 135 +135 594 +499 43 +370 858 +410 268 +852 275 +684 138 +529 823 +48 207 +375 131 +771 717 +490 114 +733 186 +462 663 +74 524 +111 150 +199 760 +636 839 +183 57 +419 616 +31 101 +27 454 +645 637 +512 102 +54 898 +744 464 +4 450 +381 467 +520 538 +383 808 +687 793 +845 517 +539 143 +477 91 +230 57 +786 292 +648 263 +210 286 +534 263 +546 32 +583 726 +807 69 +546 529 +475 117 +346 393 +597 191 +746 241 +23 589 +159 558 +618 352 +859 134 +615 733 +593 282 +857 21 +676 611 +897 428 +351 578 +579 514 +607 655 +818 200 +769 48 +41 643 +198 236 +541 783 +290 349 +538 139 +825 31 +362 858 +356 811 +166 110 +17 134 +653 875 +228 396 +875 758 +648 708 +553 785 +340 899 +459 400 +519 481 +16 826 +212 412 +97 529 +838 645 +283 120 +351 434 +550 597 +52 585 +716 866 +25 411 +741 209 +828 441 +689 786 +101 743 +680 338 +859 770 +273 76 +878 368 +755 826 +591 279 +203 705 +727 352 +245 761 +415 718 +151 518 +142 394 +515 879 +486 779 +320 557 +814 338 +894 769 +855 479 +581 90 +878 812 +778 153 +601 869 +801 45 +75 495 +886 37 +623 17 +655 375 +358 461 +64 826 +556 136 +768 333 +162 691 +251 739 +676 550 +216 15 +626 130 +445 235 +819 645 +250 223 +388 451 +880 307 +828 115 +846 326 +253 629 +369 372 +239 217 +516 872 +564 820 +588 37 +452 132 +833 194 +765 821 +775 130 +163 799 +799 16 +49 33 +794 546 +477 248 +54 265 +772 767 +64 768 +309 893 +891 527 +111 823 +729 93 +662 582 +9 832 +645 885 +488 676 +794 364 +293 286 +652 481 +511 518 +602 899 +431 457 +39 454 +136 117 +711 450 +296 700 +380 712 +611 475 +678 818 +650 775 +270 45 +564 377 diff --git a/algorithms/lab06/tests/02-dfs/9.ref b/algorithms/lab06/tests/02-dfs/9.ref new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/9.ref @@ -0,0 +1 @@ +3 diff --git a/algorithms/lab06/tests/02-dfs/check_task b/algorithms/lab06/tests/02-dfs/check_task new file mode 100755 index 0000000..cb49b8e --- /dev/null +++ b/algorithms/lab06/tests/02-dfs/check_task @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: BSD-3-Clause + +diff -q --ignore-all-space "$2" "$3" &>/dev/null diff --git a/algorithms/lab06/tests/task-2/custom.in b/algorithms/lab06/tests/02-dfs/custom.in similarity index 100% rename from algorithms/lab06/tests/task-2/custom.in rename to algorithms/lab06/tests/02-dfs/custom.in diff --git a/algorithms/lab06/tests/task-2/custom.ref b/algorithms/lab06/tests/02-dfs/custom.ref similarity index 100% rename from algorithms/lab06/tests/task-2/custom.ref rename to algorithms/lab06/tests/02-dfs/custom.ref diff --git a/algorithms/lab06/tests/task-2/1.in b/algorithms/lab06/tests/03-topsort/1.in similarity index 100% rename from algorithms/lab06/tests/task-2/1.in rename to algorithms/lab06/tests/03-topsort/1.in diff --git a/algorithms/lab06/tests/task-2/1.ref b/algorithms/lab06/tests/03-topsort/1.ref similarity index 100% rename from algorithms/lab06/tests/task-2/1.ref rename to algorithms/lab06/tests/03-topsort/1.ref diff --git a/algorithms/lab06/tests/task-2/10.in b/algorithms/lab06/tests/03-topsort/10.in similarity index 100% rename from algorithms/lab06/tests/task-2/10.in rename to algorithms/lab06/tests/03-topsort/10.in diff --git a/algorithms/lab06/tests/task-2/10.ref b/algorithms/lab06/tests/03-topsort/10.ref similarity index 100% rename from algorithms/lab06/tests/task-2/10.ref rename to algorithms/lab06/tests/03-topsort/10.ref diff --git a/algorithms/lab06/tests/task-2/2.in b/algorithms/lab06/tests/03-topsort/2.in similarity index 100% rename from algorithms/lab06/tests/task-2/2.in rename to algorithms/lab06/tests/03-topsort/2.in diff --git a/algorithms/lab06/tests/task-2/2.ref b/algorithms/lab06/tests/03-topsort/2.ref similarity index 100% rename from algorithms/lab06/tests/task-2/2.ref rename to algorithms/lab06/tests/03-topsort/2.ref diff --git a/algorithms/lab06/tests/task-2/3.in b/algorithms/lab06/tests/03-topsort/3.in similarity index 100% rename from algorithms/lab06/tests/task-2/3.in rename to algorithms/lab06/tests/03-topsort/3.in diff --git a/algorithms/lab06/tests/task-2/3.ref b/algorithms/lab06/tests/03-topsort/3.ref similarity index 100% rename from algorithms/lab06/tests/task-2/3.ref rename to algorithms/lab06/tests/03-topsort/3.ref diff --git a/algorithms/lab06/tests/task-2/4.in b/algorithms/lab06/tests/03-topsort/4.in similarity index 100% rename from algorithms/lab06/tests/task-2/4.in rename to algorithms/lab06/tests/03-topsort/4.in diff --git a/algorithms/lab06/tests/task-2/4.ref b/algorithms/lab06/tests/03-topsort/4.ref similarity index 100% rename from algorithms/lab06/tests/task-2/4.ref rename to algorithms/lab06/tests/03-topsort/4.ref diff --git a/algorithms/lab06/tests/task-2/5.in b/algorithms/lab06/tests/03-topsort/5.in similarity index 100% rename from algorithms/lab06/tests/task-2/5.in rename to algorithms/lab06/tests/03-topsort/5.in diff --git a/algorithms/lab06/tests/task-2/5.ref b/algorithms/lab06/tests/03-topsort/5.ref similarity index 100% rename from algorithms/lab06/tests/task-2/5.ref rename to algorithms/lab06/tests/03-topsort/5.ref diff --git a/algorithms/lab06/tests/task-2/6.in b/algorithms/lab06/tests/03-topsort/6.in similarity index 100% rename from algorithms/lab06/tests/task-2/6.in rename to algorithms/lab06/tests/03-topsort/6.in diff --git a/algorithms/lab06/tests/task-2/6.ref b/algorithms/lab06/tests/03-topsort/6.ref similarity index 100% rename from algorithms/lab06/tests/task-2/6.ref rename to algorithms/lab06/tests/03-topsort/6.ref diff --git a/algorithms/lab06/tests/task-2/7.in b/algorithms/lab06/tests/03-topsort/7.in similarity index 100% rename from algorithms/lab06/tests/task-2/7.in rename to algorithms/lab06/tests/03-topsort/7.in diff --git a/algorithms/lab06/tests/task-2/7.ref b/algorithms/lab06/tests/03-topsort/7.ref similarity index 100% rename from algorithms/lab06/tests/task-2/7.ref rename to algorithms/lab06/tests/03-topsort/7.ref diff --git a/algorithms/lab06/tests/task-2/8.in b/algorithms/lab06/tests/03-topsort/8.in similarity index 100% rename from algorithms/lab06/tests/task-2/8.in rename to algorithms/lab06/tests/03-topsort/8.in diff --git a/algorithms/lab06/tests/task-2/8.ref b/algorithms/lab06/tests/03-topsort/8.ref similarity index 100% rename from algorithms/lab06/tests/task-2/8.ref rename to algorithms/lab06/tests/03-topsort/8.ref diff --git a/algorithms/lab06/tests/task-2/9.in b/algorithms/lab06/tests/03-topsort/9.in similarity index 100% rename from algorithms/lab06/tests/task-2/9.in rename to algorithms/lab06/tests/03-topsort/9.in diff --git a/algorithms/lab06/tests/task-2/9.ref b/algorithms/lab06/tests/03-topsort/9.ref similarity index 100% rename from algorithms/lab06/tests/task-2/9.ref rename to algorithms/lab06/tests/03-topsort/9.ref diff --git a/algorithms/lab06/tests/task-2/check_task b/algorithms/lab06/tests/03-topsort/check_task similarity index 100% rename from algorithms/lab06/tests/task-2/check_task rename to algorithms/lab06/tests/03-topsort/check_task diff --git a/algorithms/lab06/tests/03-topsort/custom.in b/algorithms/lab06/tests/03-topsort/custom.in new file mode 100644 index 0000000..e69de29 diff --git a/algorithms/lab06/tests/03-topsort/custom.ref b/algorithms/lab06/tests/03-topsort/custom.ref new file mode 100644 index 0000000..e69de29 diff --git a/algorithms/lab06/tests/task-1/check_task b/algorithms/lab06/tests/task-1/check_task deleted file mode 120000 index 83089a8..0000000 --- a/algorithms/lab06/tests/task-1/check_task +++ /dev/null @@ -1 +0,0 @@ -../../../../utils/default_checker.sh \ No newline at end of file