summaryrefslogtreecommitdiff
path: root/prolog/problems
diff options
context:
space:
mode:
Diffstat (limited to 'prolog/problems')
-rw-r--r--prolog/problems/clp_fd/gcd_3/common.py2
-rw-r--r--prolog/problems/clp_fd/gcd_3/en.py2
-rw-r--r--prolog/problems/clp_fd/magic_1/common.py2
-rw-r--r--prolog/problems/clp_fd/magic_1/en.py2
-rw-r--r--prolog/problems/clp_fd/puzzle_abc_3/common.py2
-rw-r--r--prolog/problems/clp_fd/puzzle_abc_3/en.py2
-rw-r--r--prolog/problems/clp_fd/puzzle_beth_1/common.py2
-rw-r--r--prolog/problems/clp_fd/puzzle_beth_1/en.py2
-rw-r--r--prolog/problems/clp_fd/puzzle_momson_2/common.py2
-rw-r--r--prolog/problems/clp_fd/puzzle_momson_2/en.py2
-rw-r--r--prolog/problems/clp_fd/puzzle_ratio_2/common.py2
-rw-r--r--prolog/problems/clp_fd/puzzle_ratio_2/en.py2
-rw-r--r--prolog/problems/clp_fd/tobase_3/common.py2
-rw-r--r--prolog/problems/clp_fd/tobase_3/en.py2
-rw-r--r--prolog/problems/clp_r/bounding_box_3/common.py2
-rw-r--r--prolog/problems/clp_r/bounding_box_3/en.py2
-rw-r--r--prolog/problems/clp_r/center_3/common.py2
-rw-r--r--prolog/problems/clp_r/center_3/en.py2
-rw-r--r--prolog/problems/clp_r/linear_opt_3/common.py2
-rw-r--r--prolog/problems/clp_r/linear_opt_3/en.py2
-rw-r--r--prolog/problems/clp_r/max_sum_2/common.py2
-rw-r--r--prolog/problems/clp_r/max_sum_2/en.py2
-rw-r--r--prolog/problems/clp_r/megabytes_2/common.py2
-rw-r--r--prolog/problems/clp_r/megabytes_2/en.py2
-rw-r--r--prolog/problems/clp_r/turkey_3/common.py2
-rw-r--r--prolog/problems/clp_r/turkey_3/en.py2
-rw-r--r--prolog/problems/dcg/ab_2/common.py2
-rw-r--r--prolog/problems/dcg/ab_2/en.py2
-rw-r--r--prolog/problems/dcg/digit_2/common.py2
-rw-r--r--prolog/problems/dcg/digit_2/en.py2
-rw-r--r--prolog/problems/dcg/expr_2/common.py2
-rw-r--r--prolog/problems/dcg/expr_2/en.py2
-rw-r--r--prolog/problems/dcg/expr_3/common.py2
-rw-r--r--prolog/problems/dcg/expr_3/en.py2
-rw-r--r--prolog/problems/dcg/flower_2/common.py2
-rw-r--r--prolog/problems/dcg/flower_2/en.py2
-rw-r--r--prolog/problems/dcg/number_2/common.py2
-rw-r--r--prolog/problems/dcg/number_2/en.py2
-rw-r--r--prolog/problems/dcg/number_3/common.py2
-rw-r--r--prolog/problems/dcg/number_3/en.py2
-rw-r--r--prolog/problems/dcg/number_proper_2/common.py2
-rw-r--r--prolog/problems/dcg/number_proper_2/en.py2
-rw-r--r--prolog/problems/dcg/paren_2/common.py2
-rw-r--r--prolog/problems/dcg/paren_2/en.py2
-rw-r--r--prolog/problems/dcg/paren_3/common.py2
-rw-r--r--prolog/problems/dcg/paren_3/en.py2
-rw-r--r--prolog/problems/denotational_semantics/algol_3/common.py2
-rw-r--r--prolog/problems/denotational_semantics/algol_3/en.py2
-rw-r--r--prolog/problems/denotational_semantics/algol_for_3/common.py2
-rw-r--r--prolog/problems/denotational_semantics/algol_for_3/en.py2
-rw-r--r--prolog/problems/denotational_semantics/algol_if_3/common.py2
-rw-r--r--prolog/problems/denotational_semantics/algol_if_3/en.py2
-rw-r--r--prolog/problems/denotational_semantics/prog_8puzzle_2/common.py2
-rw-r--r--prolog/problems/denotational_semantics/prog_8puzzle_2/en.py2
-rw-r--r--prolog/problems/denotational_semantics/prog_8puzzle_3/common.py2
-rw-r--r--prolog/problems/denotational_semantics/prog_8puzzle_3/en.py2
-rw-r--r--prolog/problems/denotational_semantics/prog_listswap_2/common.py2
-rw-r--r--prolog/problems/denotational_semantics/prog_listswap_2/en.py2
-rw-r--r--prolog/problems/denotational_semantics/prog_listswap_3/common.py2
-rw-r--r--prolog/problems/denotational_semantics/prog_listswap_3/en.py2
-rw-r--r--prolog/problems/family_relations/ancestor_2/common.py2
-rw-r--r--prolog/problems/family_relations/ancestor_2/en.py2
-rw-r--r--prolog/problems/family_relations/aunt_2/common.py2
-rw-r--r--prolog/problems/family_relations/aunt_2/en.py2
-rw-r--r--prolog/problems/family_relations/brother_2/common.py2
-rw-r--r--prolog/problems/family_relations/brother_2/en.py2
-rw-r--r--prolog/problems/family_relations/connected_3/common.py2
-rw-r--r--prolog/problems/family_relations/connected_3/en.py2
-rw-r--r--prolog/problems/family_relations/cousin_2/common.py2
-rw-r--r--prolog/problems/family_relations/cousin_2/en.py2
-rw-r--r--prolog/problems/family_relations/descendant_2/common.py2
-rw-r--r--prolog/problems/family_relations/descendant_2/en.py2
-rw-r--r--prolog/problems/family_relations/grandparent_2/common.py2
-rw-r--r--prolog/problems/family_relations/grandparent_2/en.py2
-rw-r--r--prolog/problems/family_relations/mother_2/common.py2
-rw-r--r--prolog/problems/family_relations/mother_2/en.py2
-rw-r--r--prolog/problems/family_relations/sister_2/common.py2
-rw-r--r--prolog/problems/family_relations/sister_2/en.py2
-rw-r--r--prolog/problems/license_plates/checklicenseplate_3/common.py2
-rw-r--r--prolog/problems/license_plates/checklicenseplate_3/en.py2
-rw-r--r--prolog/problems/license_plates/firstminus_2/common.py2
-rw-r--r--prolog/problems/license_plates/firstminus_2/en.py2
-rw-r--r--prolog/problems/license_plates/genexp_2/common.py2
-rw-r--r--prolog/problems/license_plates/genexp_2/en.py2
-rw-r--r--prolog/problems/license_plates/getdigits_2/common.py2
-rw-r--r--prolog/problems/license_plates/getdigits_2/en.py2
-rw-r--r--prolog/problems/license_plates/joindigits_2/common.py2
-rw-r--r--prolog/problems/license_plates/joindigits_2/en.py2
-rw-r--r--prolog/problems/lists/conc_3/common.py2
-rw-r--r--prolog/problems/lists/conc_3/en.py2
-rw-r--r--prolog/problems/lists/count_3/common.py2
-rw-r--r--prolog/problems/lists/count_3/en.py2
-rw-r--r--prolog/problems/lists/del_3/common.py2
-rw-r--r--prolog/problems/lists/del_3/en.py2
-rw-r--r--prolog/problems/lists/divide_3/common.py2
-rw-r--r--prolog/problems/lists/divide_3/en.py2
-rw-r--r--prolog/problems/lists/dup_2/common.py2
-rw-r--r--prolog/problems/lists/dup_2/en.py2
-rw-r--r--prolog/problems/lists/evenlen_1_+_oddlen_1/common.py2
-rw-r--r--prolog/problems/lists/evenlen_1_+_oddlen_1/en.py2
-rw-r--r--prolog/problems/lists/insert_3/common.py2
-rw-r--r--prolog/problems/lists/insert_3/en.py2
-rw-r--r--prolog/problems/lists/len_2/common.py2
-rw-r--r--prolog/problems/lists/len_2/en.py2
-rw-r--r--prolog/problems/lists/max_2/common.py2
-rw-r--r--prolog/problems/lists/max_2/en.py2
-rw-r--r--prolog/problems/lists/memb_2/common.py2
-rw-r--r--prolog/problems/lists/memb_2/en.py2
-rw-r--r--prolog/problems/lists/min_2/common.py2
-rw-r--r--prolog/problems/lists/min_2/en.py2
-rw-r--r--prolog/problems/lists/palindrome_1/common.py2
-rw-r--r--prolog/problems/lists/palindrome_1/en.py2
-rw-r--r--prolog/problems/lists/permute_2/common.py2
-rw-r--r--prolog/problems/lists/permute_2/en.py2
-rw-r--r--prolog/problems/lists/rev_2/common.py2
-rw-r--r--prolog/problems/lists/rev_2/en.py2
-rw-r--r--prolog/problems/lists/shiftleft_2/common.py2
-rw-r--r--prolog/problems/lists/shiftleft_2/en.py2
-rw-r--r--prolog/problems/lists/shiftright_2/common.py2
-rw-r--r--prolog/problems/lists/shiftright_2/en.py2
-rw-r--r--prolog/problems/lists/sublist_2/common.py2
-rw-r--r--prolog/problems/lists/sublist_2/en.py2
-rw-r--r--prolog/problems/lists/sum_2/common.py2
-rw-r--r--prolog/problems/lists/sum_2/en.py2
-rw-r--r--prolog/problems/old_exams/pascal_3/common.py2
-rw-r--r--prolog/problems/old_exams/pascal_3/en.py2
-rw-r--r--prolog/problems/other/genlist_4/common.py2
-rw-r--r--prolog/problems/other/genlist_4/en.py2
-rw-r--r--prolog/problems/sets/diff_3/common.py2
-rw-r--r--prolog/problems/sets/diff_3/en.py2
-rw-r--r--prolog/problems/sets/intersect_3/common.py2
-rw-r--r--prolog/problems/sets/intersect_3/en.py2
-rw-r--r--prolog/problems/sets/is_subset_2/common.py2
-rw-r--r--prolog/problems/sets/is_subset_2/en.py2
-rw-r--r--prolog/problems/sets/is_superset_2/common.py2
-rw-r--r--prolog/problems/sets/is_superset_2/en.py2
-rw-r--r--prolog/problems/sets/powerset_2/common.py2
-rw-r--r--prolog/problems/sets/powerset_2/en.py2
-rw-r--r--prolog/problems/sets/subset_2/common.py2
-rw-r--r--prolog/problems/sets/subset_2/en.py2
-rw-r--r--prolog/problems/sets/union_3/common.py2
-rw-r--r--prolog/problems/sets/union_3/en.py2
-rw-r--r--prolog/problems/sorting/is_sorted_1/common.py2
-rw-r--r--prolog/problems/sorting/is_sorted_1/en.py2
-rw-r--r--prolog/problems/sorting/isort_2/common.py2
-rw-r--r--prolog/problems/sorting/isort_2/en.py2
-rw-r--r--prolog/problems/sorting/pivoting_4/common.py2
-rw-r--r--prolog/problems/sorting/pivoting_4/en.py2
-rw-r--r--prolog/problems/sorting/quick_sort_2/common.py2
-rw-r--r--prolog/problems/sorting/quick_sort_2/en.py2
-rw-r--r--prolog/problems/sorting/sins_3/common.py2
-rw-r--r--prolog/problems/sorting/sins_3/en.py2
-rw-r--r--prolog/problems/sorting/slowest_sort_ever_2/common.py2
-rw-r--r--prolog/problems/sorting/slowest_sort_ever_2/en.py2
-rw-r--r--prolog/problems/trees/deletebt_3/common.py2
-rw-r--r--prolog/problems/trees/deletebt_3/en.py2
-rw-r--r--prolog/problems/trees/depthbt_2/common.py2
-rw-r--r--prolog/problems/trees/depthbt_2/en.py2
-rw-r--r--prolog/problems/trees/insertbt_3/common.py2
-rw-r--r--prolog/problems/trees/insertbt_3/en.py2
-rw-r--r--prolog/problems/trees/maxt_2/common.py2
-rw-r--r--prolog/problems/trees/maxt_2/en.py2
-rw-r--r--prolog/problems/trees/memberbt_2/common.py2
-rw-r--r--prolog/problems/trees/memberbt_2/en.py2
-rw-r--r--prolog/problems/trees/membert_2/common.py2
-rw-r--r--prolog/problems/trees/membert_2/en.py2
-rw-r--r--prolog/problems/trees/mirrorbt_2/common.py2
-rw-r--r--prolog/problems/trees/mirrorbt_2/en.py2
-rw-r--r--prolog/problems/trees/numberbt_2/common.py2
-rw-r--r--prolog/problems/trees/numberbt_2/en.py2
-rw-r--r--prolog/problems/trees/tolistbt_2/common.py2
-rw-r--r--prolog/problems/trees/tolistbt_2/en.py2
172 files changed, 344 insertions, 0 deletions
diff --git a/prolog/problems/clp_fd/gcd_3/common.py b/prolog/problems/clp_fd/gcd_3/common.py
index 8ab99ef..a24926f 100644
--- a/prolog/problems/clp_fd/gcd_3/common.py
+++ b/prolog/problems/clp_fd/gcd_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 149
group = 'clp_fd'
number = 61
diff --git a/prolog/problems/clp_fd/gcd_3/en.py b/prolog/problems/clp_fd/gcd_3/en.py
index 6d64602..d6c92b7 100644
--- a/prolog/problems/clp_fd/gcd_3/en.py
+++ b/prolog/problems/clp_fd/gcd_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 149
name = 'gcd/3'
slug = 'greatest common divisor'
diff --git a/prolog/problems/clp_fd/magic_1/common.py b/prolog/problems/clp_fd/magic_1/common.py
index 0308e1d..93286e7 100644
--- a/prolog/problems/clp_fd/magic_1/common.py
+++ b/prolog/problems/clp_fd/magic_1/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 151
group = 'clp_fd'
number = 60
diff --git a/prolog/problems/clp_fd/magic_1/en.py b/prolog/problems/clp_fd/magic_1/en.py
index 6fcf252..04c1481 100644
--- a/prolog/problems/clp_fd/magic_1/en.py
+++ b/prolog/problems/clp_fd/magic_1/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 151
name = 'magic/1'
slug = 'generate a 3x3 magic square'
diff --git a/prolog/problems/clp_fd/puzzle_abc_3/common.py b/prolog/problems/clp_fd/puzzle_abc_3/common.py
index ee5da6f..42463a6 100644
--- a/prolog/problems/clp_fd/puzzle_abc_3/common.py
+++ b/prolog/problems/clp_fd/puzzle_abc_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 153
group = 'clp_fd'
number = 57
diff --git a/prolog/problems/clp_fd/puzzle_abc_3/en.py b/prolog/problems/clp_fd/puzzle_abc_3/en.py
index 5385fe2..3d70715 100644
--- a/prolog/problems/clp_fd/puzzle_abc_3/en.py
+++ b/prolog/problems/clp_fd/puzzle_abc_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 153
name = 'puzzle_abc/3'
slug = 'age puzzle: abc'
diff --git a/prolog/problems/clp_fd/puzzle_beth_1/common.py b/prolog/problems/clp_fd/puzzle_beth_1/common.py
index a7bcfeb..3321d52 100644
--- a/prolog/problems/clp_fd/puzzle_beth_1/common.py
+++ b/prolog/problems/clp_fd/puzzle_beth_1/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 155
group = 'clp_fd'
number = 56
diff --git a/prolog/problems/clp_fd/puzzle_beth_1/en.py b/prolog/problems/clp_fd/puzzle_beth_1/en.py
index 7f4ebc2..fed373c 100644
--- a/prolog/problems/clp_fd/puzzle_beth_1/en.py
+++ b/prolog/problems/clp_fd/puzzle_beth_1/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 155
name = 'puzzle_beth/1'
slug = 'age puzzle: beth'
diff --git a/prolog/problems/clp_fd/puzzle_momson_2/common.py b/prolog/problems/clp_fd/puzzle_momson_2/common.py
index f96f403..94e5aa2 100644
--- a/prolog/problems/clp_fd/puzzle_momson_2/common.py
+++ b/prolog/problems/clp_fd/puzzle_momson_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 152
group = 'clp_fd'
number = 58
diff --git a/prolog/problems/clp_fd/puzzle_momson_2/en.py b/prolog/problems/clp_fd/puzzle_momson_2/en.py
index 8fa8a1f..cf97abf 100644
--- a/prolog/problems/clp_fd/puzzle_momson_2/en.py
+++ b/prolog/problems/clp_fd/puzzle_momson_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 152
name = 'puzzle_momson/2'
slug = 'age puzzle: mom & son'
diff --git a/prolog/problems/clp_fd/puzzle_ratio_2/common.py b/prolog/problems/clp_fd/puzzle_ratio_2/common.py
index ba7585b..baf7c02 100644
--- a/prolog/problems/clp_fd/puzzle_ratio_2/common.py
+++ b/prolog/problems/clp_fd/puzzle_ratio_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 154
group = 'clp_fd'
number = 59
diff --git a/prolog/problems/clp_fd/puzzle_ratio_2/en.py b/prolog/problems/clp_fd/puzzle_ratio_2/en.py
index aa5b647..28fc999 100644
--- a/prolog/problems/clp_fd/puzzle_ratio_2/en.py
+++ b/prolog/problems/clp_fd/puzzle_ratio_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 154
name = 'puzzle_ratio/2'
slug = 'age puzzle: ratio'
diff --git a/prolog/problems/clp_fd/tobase_3/common.py b/prolog/problems/clp_fd/tobase_3/common.py
index fb88be0..3a29dbe 100644
--- a/prolog/problems/clp_fd/tobase_3/common.py
+++ b/prolog/problems/clp_fd/tobase_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 150
group = 'clp_fd'
number = 62
diff --git a/prolog/problems/clp_fd/tobase_3/en.py b/prolog/problems/clp_fd/tobase_3/en.py
index bac8723..a778ccb 100644
--- a/prolog/problems/clp_fd/tobase_3/en.py
+++ b/prolog/problems/clp_fd/tobase_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 150
name = 'tobase/3'
slug = 'convert numbers from/to the decimal system'
diff --git a/prolog/problems/clp_r/bounding_box_3/common.py b/prolog/problems/clp_r/bounding_box_3/common.py
index 631f017..dc6b047 100644
--- a/prolog/problems/clp_r/bounding_box_3/common.py
+++ b/prolog/problems/clp_r/bounding_box_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 157
group = 'clp_r'
number = 67
diff --git a/prolog/problems/clp_r/bounding_box_3/en.py b/prolog/problems/clp_r/bounding_box_3/en.py
index bc800b9..714f8a4 100644
--- a/prolog/problems/clp_r/bounding_box_3/en.py
+++ b/prolog/problems/clp_r/bounding_box_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 157
name = 'bounding_box/3'
slug = 'find the smallest bounding box'
diff --git a/prolog/problems/clp_r/center_3/common.py b/prolog/problems/clp_r/center_3/common.py
index 1474ef1..340cd7f 100644
--- a/prolog/problems/clp_r/center_3/common.py
+++ b/prolog/problems/clp_r/center_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 158
group = 'clp_r'
number = 68
diff --git a/prolog/problems/clp_r/center_3/en.py b/prolog/problems/clp_r/center_3/en.py
index b2b4c8d..2c1f882 100644
--- a/prolog/problems/clp_r/center_3/en.py
+++ b/prolog/problems/clp_r/center_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 158
name = 'center/3'
slug = 'find central points'
diff --git a/prolog/problems/clp_r/linear_opt_3/common.py b/prolog/problems/clp_r/linear_opt_3/common.py
index 95d7ea2..35f582d 100644
--- a/prolog/problems/clp_r/linear_opt_3/common.py
+++ b/prolog/problems/clp_r/linear_opt_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 159
group = 'clp_r'
number = 63
diff --git a/prolog/problems/clp_r/linear_opt_3/en.py b/prolog/problems/clp_r/linear_opt_3/en.py
index 645a6c8..58530a9 100644
--- a/prolog/problems/clp_r/linear_opt_3/en.py
+++ b/prolog/problems/clp_r/linear_opt_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 159
name = 'linear_opt/3'
slug = 'linear optimization'
diff --git a/prolog/problems/clp_r/max_sum_2/common.py b/prolog/problems/clp_r/max_sum_2/common.py
index ef4ea79..71c3005 100644
--- a/prolog/problems/clp_r/max_sum_2/common.py
+++ b/prolog/problems/clp_r/max_sum_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 156
group = 'clp_r'
number = 66
diff --git a/prolog/problems/clp_r/max_sum_2/en.py b/prolog/problems/clp_r/max_sum_2/en.py
index 3e8f136..6d0c1d2 100644
--- a/prolog/problems/clp_r/max_sum_2/en.py
+++ b/prolog/problems/clp_r/max_sum_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 156
name = 'max_sum/2'
slug = 'find maximal adjacent elements'
diff --git a/prolog/problems/clp_r/megabytes_2/common.py b/prolog/problems/clp_r/megabytes_2/common.py
index e528c3c..aefab2d 100644
--- a/prolog/problems/clp_r/megabytes_2/common.py
+++ b/prolog/problems/clp_r/megabytes_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 160
group = 'clp_r'
number = 65
diff --git a/prolog/problems/clp_r/megabytes_2/en.py b/prolog/problems/clp_r/megabytes_2/en.py
index 6db93c8..cb355f1 100644
--- a/prolog/problems/clp_r/megabytes_2/en.py
+++ b/prolog/problems/clp_r/megabytes_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 160
name = 'megabytes/2'
slug = 'convert mebibytes to megabytes'
diff --git a/prolog/problems/clp_r/turkey_3/common.py b/prolog/problems/clp_r/turkey_3/common.py
index 6a99fc4..42f4119 100644
--- a/prolog/problems/clp_r/turkey_3/common.py
+++ b/prolog/problems/clp_r/turkey_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 161
group = 'clp_r'
number = 64
diff --git a/prolog/problems/clp_r/turkey_3/en.py b/prolog/problems/clp_r/turkey_3/en.py
index 3117e35..b6e1d55 100644
--- a/prolog/problems/clp_r/turkey_3/en.py
+++ b/prolog/problems/clp_r/turkey_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 161
name = 'turkey/3'
slug = 'turkey feed'
diff --git a/prolog/problems/dcg/ab_2/common.py b/prolog/problems/dcg/ab_2/common.py
index 8cce3df..f473a0b 100644
--- a/prolog/problems/dcg/ab_2/common.py
+++ b/prolog/problems/dcg/ab_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 162
group = 'dcg'
number = 69
diff --git a/prolog/problems/dcg/ab_2/en.py b/prolog/problems/dcg/ab_2/en.py
index 8025081..20c8317 100644
--- a/prolog/problems/dcg/ab_2/en.py
+++ b/prolog/problems/dcg/ab_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 162
name = 'ab/2'
slug = 'a*b*'
diff --git a/prolog/problems/dcg/digit_2/common.py b/prolog/problems/dcg/digit_2/common.py
index 9b82f15..5b31e04 100644
--- a/prolog/problems/dcg/digit_2/common.py
+++ b/prolog/problems/dcg/digit_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 164
group = 'dcg'
number = 71
diff --git a/prolog/problems/dcg/digit_2/en.py b/prolog/problems/dcg/digit_2/en.py
index 200689d..3172a21 100644
--- a/prolog/problems/dcg/digit_2/en.py
+++ b/prolog/problems/dcg/digit_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 164
name = 'digit/2'
slug = 'a decimal digit'
diff --git a/prolog/problems/dcg/expr_2/common.py b/prolog/problems/dcg/expr_2/common.py
index 49059f2..f5c4aa0 100644
--- a/prolog/problems/dcg/expr_2/common.py
+++ b/prolog/problems/dcg/expr_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 170
group = 'dcg'
number = 77
diff --git a/prolog/problems/dcg/expr_2/en.py b/prolog/problems/dcg/expr_2/en.py
index 9b30551..d4b0dc9 100644
--- a/prolog/problems/dcg/expr_2/en.py
+++ b/prolog/problems/dcg/expr_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 170
name = 'expr/2'
slug = 'arithmetic expressions'
diff --git a/prolog/problems/dcg/expr_3/common.py b/prolog/problems/dcg/expr_3/common.py
index daa5b31..651a1b9 100644
--- a/prolog/problems/dcg/expr_3/common.py
+++ b/prolog/problems/dcg/expr_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 171
group = 'dcg'
number = 78
diff --git a/prolog/problems/dcg/expr_3/en.py b/prolog/problems/dcg/expr_3/en.py
index 3f91977..659503d 100644
--- a/prolog/problems/dcg/expr_3/en.py
+++ b/prolog/problems/dcg/expr_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 171
name = 'expr/3'
slug = 'arithmetic expressions with meaning'
diff --git a/prolog/problems/dcg/flower_2/common.py b/prolog/problems/dcg/flower_2/common.py
index d380722..5865da9 100644
--- a/prolog/problems/dcg/flower_2/common.py
+++ b/prolog/problems/dcg/flower_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 163
group = 'dcg'
number = 70
diff --git a/prolog/problems/dcg/flower_2/en.py b/prolog/problems/dcg/flower_2/en.py
index 85d1e73..0267278 100644
--- a/prolog/problems/dcg/flower_2/en.py
+++ b/prolog/problems/dcg/flower_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 163
name = 'flower/2'
slug = 'words like +++--+++'
diff --git a/prolog/problems/dcg/number_2/common.py b/prolog/problems/dcg/number_2/common.py
index e248891..6d33e12 100644
--- a/prolog/problems/dcg/number_2/common.py
+++ b/prolog/problems/dcg/number_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 165
group = 'dcg'
number = 72
diff --git a/prolog/problems/dcg/number_2/en.py b/prolog/problems/dcg/number_2/en.py
index 6a3d33e..8e88655 100644
--- a/prolog/problems/dcg/number_2/en.py
+++ b/prolog/problems/dcg/number_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 165
name = 'number/2'
slug = 'numbers with potential leading zeros'
diff --git a/prolog/problems/dcg/number_3/common.py b/prolog/problems/dcg/number_3/common.py
index cc4bde7..0e6f2b0 100644
--- a/prolog/problems/dcg/number_3/common.py
+++ b/prolog/problems/dcg/number_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 167
group = 'dcg'
number = 74
diff --git a/prolog/problems/dcg/number_3/en.py b/prolog/problems/dcg/number_3/en.py
index a7a22fa..b73e16d 100644
--- a/prolog/problems/dcg/number_3/en.py
+++ b/prolog/problems/dcg/number_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 167
name = 'number/3'
slug = 'numbers with meaning'
diff --git a/prolog/problems/dcg/number_proper_2/common.py b/prolog/problems/dcg/number_proper_2/common.py
index fdcc494..c6b535b 100644
--- a/prolog/problems/dcg/number_proper_2/common.py
+++ b/prolog/problems/dcg/number_proper_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 166
group = 'dcg'
number = 73
diff --git a/prolog/problems/dcg/number_proper_2/en.py b/prolog/problems/dcg/number_proper_2/en.py
index 37ad864..81ca5f6 100644
--- a/prolog/problems/dcg/number_proper_2/en.py
+++ b/prolog/problems/dcg/number_proper_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 166
name = 'number_proper/2'
slug = 'numbers without leading zeros'
diff --git a/prolog/problems/dcg/paren_2/common.py b/prolog/problems/dcg/paren_2/common.py
index ce5ec87..d5969a2 100644
--- a/prolog/problems/dcg/paren_2/common.py
+++ b/prolog/problems/dcg/paren_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 168
group = 'dcg'
number = 75
diff --git a/prolog/problems/dcg/paren_2/en.py b/prolog/problems/dcg/paren_2/en.py
index a4ab666..268b774 100644
--- a/prolog/problems/dcg/paren_2/en.py
+++ b/prolog/problems/dcg/paren_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 168
name = 'paren/2'
slug = 'properly nested parens'
diff --git a/prolog/problems/dcg/paren_3/common.py b/prolog/problems/dcg/paren_3/common.py
index cf7c439..4cda182 100644
--- a/prolog/problems/dcg/paren_3/common.py
+++ b/prolog/problems/dcg/paren_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 169
group = 'dcg'
number = 76
diff --git a/prolog/problems/dcg/paren_3/en.py b/prolog/problems/dcg/paren_3/en.py
index f4d4c3b..737f0ef 100644
--- a/prolog/problems/dcg/paren_3/en.py
+++ b/prolog/problems/dcg/paren_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 169
name = 'paren/3'
slug = 'properly nested parens with meaning'
diff --git a/prolog/problems/denotational_semantics/algol_3/common.py b/prolog/problems/denotational_semantics/algol_3/common.py
index fe6618d..1f5b196 100644
--- a/prolog/problems/denotational_semantics/algol_3/common.py
+++ b/prolog/problems/denotational_semantics/algol_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 176
group = 'denotational_semantics'
number = 83
diff --git a/prolog/problems/denotational_semantics/algol_3/en.py b/prolog/problems/denotational_semantics/algol_3/en.py
index 4b46b11..5c79c41 100644
--- a/prolog/problems/denotational_semantics/algol_3/en.py
+++ b/prolog/problems/denotational_semantics/algol_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 176
name = 'algol/3'
slug = 'interpreter for mini-algol'
diff --git a/prolog/problems/denotational_semantics/algol_for_3/common.py b/prolog/problems/denotational_semantics/algol_for_3/common.py
index 3917aa6..bc0c3e8 100644
--- a/prolog/problems/denotational_semantics/algol_for_3/common.py
+++ b/prolog/problems/denotational_semantics/algol_for_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 178
group = 'denotational_semantics'
number = 85
diff --git a/prolog/problems/denotational_semantics/algol_for_3/en.py b/prolog/problems/denotational_semantics/algol_for_3/en.py
index 3578b71..53e5e2b 100644
--- a/prolog/problems/denotational_semantics/algol_for_3/en.py
+++ b/prolog/problems/denotational_semantics/algol_for_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 178
name = 'algol_for/3'
slug = 'interpreter for mini-algol with for-statement'
diff --git a/prolog/problems/denotational_semantics/algol_if_3/common.py b/prolog/problems/denotational_semantics/algol_if_3/common.py
index 8ca92bc..fd750e0 100644
--- a/prolog/problems/denotational_semantics/algol_if_3/common.py
+++ b/prolog/problems/denotational_semantics/algol_if_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 177
group = 'denotational_semantics'
number = 84
diff --git a/prolog/problems/denotational_semantics/algol_if_3/en.py b/prolog/problems/denotational_semantics/algol_if_3/en.py
index 6bc0cb8..f4ae00a 100644
--- a/prolog/problems/denotational_semantics/algol_if_3/en.py
+++ b/prolog/problems/denotational_semantics/algol_if_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 177
name = 'algol_if/3'
slug = 'interpreter for mini-algol with if-statement'
diff --git a/prolog/problems/denotational_semantics/prog_8puzzle_2/common.py b/prolog/problems/denotational_semantics/prog_8puzzle_2/common.py
index 4cc9c9e..e48d03f 100644
--- a/prolog/problems/denotational_semantics/prog_8puzzle_2/common.py
+++ b/prolog/problems/denotational_semantics/prog_8puzzle_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 172
group = 'denotational_semantics'
number = 81
diff --git a/prolog/problems/denotational_semantics/prog_8puzzle_2/en.py b/prolog/problems/denotational_semantics/prog_8puzzle_2/en.py
index eebf07b..d43a837 100644
--- a/prolog/problems/denotational_semantics/prog_8puzzle_2/en.py
+++ b/prolog/problems/denotational_semantics/prog_8puzzle_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 172
name = 'prog_8puzzle/2'
slug = '8-puzzle-solving language'
diff --git a/prolog/problems/denotational_semantics/prog_8puzzle_3/common.py b/prolog/problems/denotational_semantics/prog_8puzzle_3/common.py
index 415dc17..f86a0c4 100644
--- a/prolog/problems/denotational_semantics/prog_8puzzle_3/common.py
+++ b/prolog/problems/denotational_semantics/prog_8puzzle_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 173
group = 'denotational_semantics'
number = 82
diff --git a/prolog/problems/denotational_semantics/prog_8puzzle_3/en.py b/prolog/problems/denotational_semantics/prog_8puzzle_3/en.py
index c91b9e3..346d579 100644
--- a/prolog/problems/denotational_semantics/prog_8puzzle_3/en.py
+++ b/prolog/problems/denotational_semantics/prog_8puzzle_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 173
name = 'prog_8puzzle/3'
slug = '8-puzzle-solving language with semantics'
diff --git a/prolog/problems/denotational_semantics/prog_listswap_2/common.py b/prolog/problems/denotational_semantics/prog_listswap_2/common.py
index ae1c220..9a7c586 100644
--- a/prolog/problems/denotational_semantics/prog_listswap_2/common.py
+++ b/prolog/problems/denotational_semantics/prog_listswap_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 175
group = 'denotational_semantics'
number = 79
diff --git a/prolog/problems/denotational_semantics/prog_listswap_2/en.py b/prolog/problems/denotational_semantics/prog_listswap_2/en.py
index 4dd0ed5..2cf8fff 100644
--- a/prolog/problems/denotational_semantics/prog_listswap_2/en.py
+++ b/prolog/problems/denotational_semantics/prog_listswap_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 175
name = 'prog_listswap/2'
slug = 'list-manipulation language'
diff --git a/prolog/problems/denotational_semantics/prog_listswap_3/common.py b/prolog/problems/denotational_semantics/prog_listswap_3/common.py
index 110890d..2b32618 100644
--- a/prolog/problems/denotational_semantics/prog_listswap_3/common.py
+++ b/prolog/problems/denotational_semantics/prog_listswap_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 174
group = 'denotational_semantics'
number = 80
diff --git a/prolog/problems/denotational_semantics/prog_listswap_3/en.py b/prolog/problems/denotational_semantics/prog_listswap_3/en.py
index 1a7cb79..88a927a 100644
--- a/prolog/problems/denotational_semantics/prog_listswap_3/en.py
+++ b/prolog/problems/denotational_semantics/prog_listswap_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 174
name = 'prog_listswap/3'
slug = 'list-manipulation language with semantics'
diff --git a/prolog/problems/family_relations/ancestor_2/common.py b/prolog/problems/family_relations/ancestor_2/common.py
index 61472b6..473fa27 100644
--- a/prolog/problems/family_relations/ancestor_2/common.py
+++ b/prolog/problems/family_relations/ancestor_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 100
group = 'family_relations'
number = 7
diff --git a/prolog/problems/family_relations/ancestor_2/en.py b/prolog/problems/family_relations/ancestor_2/en.py
index 4853e15..b390705 100644
--- a/prolog/problems/family_relations/ancestor_2/en.py
+++ b/prolog/problems/family_relations/ancestor_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 100
name = 'ancestor/2'
slug = 'the ancestor relation'
diff --git a/prolog/problems/family_relations/aunt_2/common.py b/prolog/problems/family_relations/aunt_2/common.py
index 78e98c5..f0af2dc 100644
--- a/prolog/problems/family_relations/aunt_2/common.py
+++ b/prolog/problems/family_relations/aunt_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 98
group = 'family_relations'
number = 5
diff --git a/prolog/problems/family_relations/aunt_2/en.py b/prolog/problems/family_relations/aunt_2/en.py
index 95780a1..8d20d7e 100644
--- a/prolog/problems/family_relations/aunt_2/en.py
+++ b/prolog/problems/family_relations/aunt_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 98
name = 'aunt/2'
slug = 'the aunt relation'
diff --git a/prolog/problems/family_relations/brother_2/common.py b/prolog/problems/family_relations/brother_2/common.py
index c339644..6038a13 100644
--- a/prolog/problems/family_relations/brother_2/common.py
+++ b/prolog/problems/family_relations/brother_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 97
group = 'family_relations'
number = 4
diff --git a/prolog/problems/family_relations/brother_2/en.py b/prolog/problems/family_relations/brother_2/en.py
index 8cae8b8..709b077 100644
--- a/prolog/problems/family_relations/brother_2/en.py
+++ b/prolog/problems/family_relations/brother_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 97
name = 'brother/2'
slug = 'the brother relation'
diff --git a/prolog/problems/family_relations/connected_3/common.py b/prolog/problems/family_relations/connected_3/common.py
index 9a68d36..1221713 100644
--- a/prolog/problems/family_relations/connected_3/common.py
+++ b/prolog/problems/family_relations/connected_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 102
group = 'family_relations'
number = 9
diff --git a/prolog/problems/family_relations/connected_3/en.py b/prolog/problems/family_relations/connected_3/en.py
index 8fe1eed..5fe8edb 100644
--- a/prolog/problems/family_relations/connected_3/en.py
+++ b/prolog/problems/family_relations/connected_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 102
name = 'connected/3'
slug = 'check if two people are connected in the family tree'
diff --git a/prolog/problems/family_relations/cousin_2/common.py b/prolog/problems/family_relations/cousin_2/common.py
index 9285a80..7cd6392 100644
--- a/prolog/problems/family_relations/cousin_2/common.py
+++ b/prolog/problems/family_relations/cousin_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 99
group = 'family_relations'
number = 6
diff --git a/prolog/problems/family_relations/cousin_2/en.py b/prolog/problems/family_relations/cousin_2/en.py
index 72faa60..1399013 100644
--- a/prolog/problems/family_relations/cousin_2/en.py
+++ b/prolog/problems/family_relations/cousin_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 99
name = 'cousin/2'
slug = 'the cousin relation'
diff --git a/prolog/problems/family_relations/descendant_2/common.py b/prolog/problems/family_relations/descendant_2/common.py
index 408b3c7..53320b3 100644
--- a/prolog/problems/family_relations/descendant_2/common.py
+++ b/prolog/problems/family_relations/descendant_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 101
group = 'family_relations'
number = 8
diff --git a/prolog/problems/family_relations/descendant_2/en.py b/prolog/problems/family_relations/descendant_2/en.py
index d4ac794..b0fccf2 100644
--- a/prolog/problems/family_relations/descendant_2/en.py
+++ b/prolog/problems/family_relations/descendant_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 101
name = 'descendant/2'
slug = 'the descendant relation'
diff --git a/prolog/problems/family_relations/grandparent_2/common.py b/prolog/problems/family_relations/grandparent_2/common.py
index 12b7c0d..1091d52 100644
--- a/prolog/problems/family_relations/grandparent_2/common.py
+++ b/prolog/problems/family_relations/grandparent_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 95
group = 'family_relations'
number = 2
diff --git a/prolog/problems/family_relations/grandparent_2/en.py b/prolog/problems/family_relations/grandparent_2/en.py
index cdc9cec..6fdeb70 100644
--- a/prolog/problems/family_relations/grandparent_2/en.py
+++ b/prolog/problems/family_relations/grandparent_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 95
name = 'grandparent/2'
slug = 'the grandparent relation'
diff --git a/prolog/problems/family_relations/mother_2/common.py b/prolog/problems/family_relations/mother_2/common.py
index 6c75823..65087b4 100644
--- a/prolog/problems/family_relations/mother_2/common.py
+++ b/prolog/problems/family_relations/mother_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 94
group = 'family_relations'
number = 1
diff --git a/prolog/problems/family_relations/mother_2/en.py b/prolog/problems/family_relations/mother_2/en.py
index 9f1c098..108bb9b 100644
--- a/prolog/problems/family_relations/mother_2/en.py
+++ b/prolog/problems/family_relations/mother_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 94
name = 'mother/2'
slug = 'the mother-child relation'
diff --git a/prolog/problems/family_relations/sister_2/common.py b/prolog/problems/family_relations/sister_2/common.py
index 75a2b62..084aca6 100644
--- a/prolog/problems/family_relations/sister_2/common.py
+++ b/prolog/problems/family_relations/sister_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 96
group = 'family_relations'
number = 3
diff --git a/prolog/problems/family_relations/sister_2/en.py b/prolog/problems/family_relations/sister_2/en.py
index 140b76f..d8395c0 100644
--- a/prolog/problems/family_relations/sister_2/en.py
+++ b/prolog/problems/family_relations/sister_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 96
name = 'sister/2'
slug = 'the sister relation'
diff --git a/prolog/problems/license_plates/checklicenseplate_3/common.py b/prolog/problems/license_plates/checklicenseplate_3/common.py
index f926481..5dc1c3c 100644
--- a/prolog/problems/license_plates/checklicenseplate_3/common.py
+++ b/prolog/problems/license_plates/checklicenseplate_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 148
group = 'license_plates'
number = 55
diff --git a/prolog/problems/license_plates/checklicenseplate_3/en.py b/prolog/problems/license_plates/checklicenseplate_3/en.py
index 1f3ea94..4e3e726 100644
--- a/prolog/problems/license_plates/checklicenseplate_3/en.py
+++ b/prolog/problems/license_plates/checklicenseplate_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 148
name = 'checkLicensePlate/3'
slug = 'check if the numbers in a license plate form an equation'
diff --git a/prolog/problems/license_plates/firstminus_2/common.py b/prolog/problems/license_plates/firstminus_2/common.py
index 9e971f6..ece4dd6 100644
--- a/prolog/problems/license_plates/firstminus_2/common.py
+++ b/prolog/problems/license_plates/firstminus_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 147
group = 'license_plates'
number = 54
diff --git a/prolog/problems/license_plates/firstminus_2/en.py b/prolog/problems/license_plates/firstminus_2/en.py
index 9fb8c69..00bb198 100644
--- a/prolog/problems/license_plates/firstminus_2/en.py
+++ b/prolog/problems/license_plates/firstminus_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 147
name = 'firstMinus/2'
slug = 'negate the first element in a list of numbers'
diff --git a/prolog/problems/license_plates/genexp_2/common.py b/prolog/problems/license_plates/genexp_2/common.py
index a91c392..170722b 100644
--- a/prolog/problems/license_plates/genexp_2/common.py
+++ b/prolog/problems/license_plates/genexp_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 146
group = 'license_plates'
number = 53
diff --git a/prolog/problems/license_plates/genexp_2/en.py b/prolog/problems/license_plates/genexp_2/en.py
index c5c61fb..de168ec 100644
--- a/prolog/problems/license_plates/genexp_2/en.py
+++ b/prolog/problems/license_plates/genexp_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 146
name = 'genexp/2'
slug = 'generate an arithmetic expression from a list'
diff --git a/prolog/problems/license_plates/getdigits_2/common.py b/prolog/problems/license_plates/getdigits_2/common.py
index 8d6e890..20be22e 100644
--- a/prolog/problems/license_plates/getdigits_2/common.py
+++ b/prolog/problems/license_plates/getdigits_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 144
group = 'license_plates'
number = 51
diff --git a/prolog/problems/license_plates/getdigits_2/en.py b/prolog/problems/license_plates/getdigits_2/en.py
index 06bfa22..6da7033 100644
--- a/prolog/problems/license_plates/getdigits_2/en.py
+++ b/prolog/problems/license_plates/getdigits_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 144
name = 'getdigits/2'
slug = 'remove non-numeric elements from a list'
diff --git a/prolog/problems/license_plates/joindigits_2/common.py b/prolog/problems/license_plates/joindigits_2/common.py
index dc3e4a5..b89559f 100644
--- a/prolog/problems/license_plates/joindigits_2/common.py
+++ b/prolog/problems/license_plates/joindigits_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 145
group = 'license_plates'
number = 52
diff --git a/prolog/problems/license_plates/joindigits_2/en.py b/prolog/problems/license_plates/joindigits_2/en.py
index 19623d7..3a5ff41 100644
--- a/prolog/problems/license_plates/joindigits_2/en.py
+++ b/prolog/problems/license_plates/joindigits_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 145
name = 'joindigits/2'
slug = 'join adjacent numbers in a list'
diff --git a/prolog/problems/lists/conc_3/common.py b/prolog/problems/lists/conc_3/common.py
index 29a3919..ef23d67 100644
--- a/prolog/problems/lists/conc_3/common.py
+++ b/prolog/problems/lists/conc_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 104
group = 'lists'
number = 12
diff --git a/prolog/problems/lists/conc_3/en.py b/prolog/problems/lists/conc_3/en.py
index 3e127c0..184ca44 100644
--- a/prolog/problems/lists/conc_3/en.py
+++ b/prolog/problems/lists/conc_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 104
name = 'conc/3'
slug = 'concatenate two lists'
diff --git a/prolog/problems/lists/count_3/common.py b/prolog/problems/lists/count_3/common.py
index 583ad6b..bf6f688 100644
--- a/prolog/problems/lists/count_3/common.py
+++ b/prolog/problems/lists/count_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 120
group = 'lists'
number = 27
diff --git a/prolog/problems/lists/count_3/en.py b/prolog/problems/lists/count_3/en.py
index 799594e..9115940 100644
--- a/prolog/problems/lists/count_3/en.py
+++ b/prolog/problems/lists/count_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 120
name = 'count/3'
slug = 'find the number of occurrences of an element in list'
diff --git a/prolog/problems/lists/del_3/common.py b/prolog/problems/lists/del_3/common.py
index 1e99959..81bbb75 100644
--- a/prolog/problems/lists/del_3/common.py
+++ b/prolog/problems/lists/del_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 105
group = 'lists'
number = 11
diff --git a/prolog/problems/lists/del_3/en.py b/prolog/problems/lists/del_3/en.py
index a0f0cd3..1e58ae5 100644
--- a/prolog/problems/lists/del_3/en.py
+++ b/prolog/problems/lists/del_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 105
name = 'del/3'
slug = 'delete an element from list'
diff --git a/prolog/problems/lists/divide_3/common.py b/prolog/problems/lists/divide_3/common.py
index 901d2f4..337f702 100644
--- a/prolog/problems/lists/divide_3/common.py
+++ b/prolog/problems/lists/divide_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 115
group = 'lists'
number = 22
diff --git a/prolog/problems/lists/divide_3/en.py b/prolog/problems/lists/divide_3/en.py
index 1a8d94e..657b013 100644
--- a/prolog/problems/lists/divide_3/en.py
+++ b/prolog/problems/lists/divide_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 115
name = 'divide/3'
slug = 'split a list into parts of roughly equal length'
diff --git a/prolog/problems/lists/dup_2/common.py b/prolog/problems/lists/dup_2/common.py
index 37a0842..7417006 100644
--- a/prolog/problems/lists/dup_2/common.py
+++ b/prolog/problems/lists/dup_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 110
group = 'lists'
number = 17
diff --git a/prolog/problems/lists/dup_2/en.py b/prolog/problems/lists/dup_2/en.py
index d6aef71..f6354b3 100644
--- a/prolog/problems/lists/dup_2/en.py
+++ b/prolog/problems/lists/dup_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 110
name = 'dup/2'
slug = 'duplicate the elements of a list'
diff --git a/prolog/problems/lists/evenlen_1_+_oddlen_1/common.py b/prolog/problems/lists/evenlen_1_+_oddlen_1/common.py
index 2735965..aaca8ec 100644
--- a/prolog/problems/lists/evenlen_1_+_oddlen_1/common.py
+++ b/prolog/problems/lists/evenlen_1_+_oddlen_1/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 116
group = 'lists'
number = 23
diff --git a/prolog/problems/lists/evenlen_1_+_oddlen_1/en.py b/prolog/problems/lists/evenlen_1_+_oddlen_1/en.py
index d1957d1..741c36a 100644
--- a/prolog/problems/lists/evenlen_1_+_oddlen_1/en.py
+++ b/prolog/problems/lists/evenlen_1_+_oddlen_1/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 116
name = 'evenlen/1 + oddlen/1'
slug = 'check if the length of a list is even or odd'
diff --git a/prolog/problems/lists/insert_3/common.py b/prolog/problems/lists/insert_3/common.py
index fa3a937..df4e16e 100644
--- a/prolog/problems/lists/insert_3/common.py
+++ b/prolog/problems/lists/insert_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 106
group = 'lists'
number = 13
diff --git a/prolog/problems/lists/insert_3/en.py b/prolog/problems/lists/insert_3/en.py
index a4a1128..01a7d0a 100644
--- a/prolog/problems/lists/insert_3/en.py
+++ b/prolog/problems/lists/insert_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 106
name = 'insert/3'
slug = 'insert an element into list'
diff --git a/prolog/problems/lists/len_2/common.py b/prolog/problems/lists/len_2/common.py
index 62be9cc..33fc223 100644
--- a/prolog/problems/lists/len_2/common.py
+++ b/prolog/problems/lists/len_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 119
group = 'lists'
number = 26
diff --git a/prolog/problems/lists/len_2/en.py b/prolog/problems/lists/len_2/en.py
index b3e277c..325e28f 100644
--- a/prolog/problems/lists/len_2/en.py
+++ b/prolog/problems/lists/len_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 119
name = 'len/2'
slug = 'find the length of a list'
diff --git a/prolog/problems/lists/max_2/common.py b/prolog/problems/lists/max_2/common.py
index 65e5a70..73c39a2 100644
--- a/prolog/problems/lists/max_2/common.py
+++ b/prolog/problems/lists/max_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 109
group = 'lists'
number = 16
diff --git a/prolog/problems/lists/max_2/en.py b/prolog/problems/lists/max_2/en.py
index dfb4d60..1f6aba7 100644
--- a/prolog/problems/lists/max_2/en.py
+++ b/prolog/problems/lists/max_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 109
name = 'max/2'
slug = 'find the largest element in list'
diff --git a/prolog/problems/lists/memb_2/common.py b/prolog/problems/lists/memb_2/common.py
index 32d9125..9e8b58e 100644
--- a/prolog/problems/lists/memb_2/common.py
+++ b/prolog/problems/lists/memb_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 103
group = 'lists'
number = 10
diff --git a/prolog/problems/lists/memb_2/en.py b/prolog/problems/lists/memb_2/en.py
index fca82b7..9b3c4d9 100644
--- a/prolog/problems/lists/memb_2/en.py
+++ b/prolog/problems/lists/memb_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 103
name = 'memb/2'
slug = 'find elements in list'
diff --git a/prolog/problems/lists/min_2/common.py b/prolog/problems/lists/min_2/common.py
index 7e9a0bc..a5421d1 100644
--- a/prolog/problems/lists/min_2/common.py
+++ b/prolog/problems/lists/min_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 108
group = 'lists'
number = 15
diff --git a/prolog/problems/lists/min_2/en.py b/prolog/problems/lists/min_2/en.py
index a0a8e74..0e5a907 100644
--- a/prolog/problems/lists/min_2/en.py
+++ b/prolog/problems/lists/min_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 108
name = 'min/2'
slug = 'find the smallest element'
diff --git a/prolog/problems/lists/palindrome_1/common.py b/prolog/problems/lists/palindrome_1/common.py
index 8929fd9..31998e2 100644
--- a/prolog/problems/lists/palindrome_1/common.py
+++ b/prolog/problems/lists/palindrome_1/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 112
group = 'lists'
number = 19
diff --git a/prolog/problems/lists/palindrome_1/en.py b/prolog/problems/lists/palindrome_1/en.py
index c1b8971..3e5f561 100644
--- a/prolog/problems/lists/palindrome_1/en.py
+++ b/prolog/problems/lists/palindrome_1/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 112
name = 'palindrome/1'
slug = 'check if list is a palindrome'
diff --git a/prolog/problems/lists/permute_2/common.py b/prolog/problems/lists/permute_2/common.py
index 8e0386c..a1c66ff 100644
--- a/prolog/problems/lists/permute_2/common.py
+++ b/prolog/problems/lists/permute_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 107
group = 'lists'
number = 14
diff --git a/prolog/problems/lists/permute_2/en.py b/prolog/problems/lists/permute_2/en.py
index 8898c83..048713e 100644
--- a/prolog/problems/lists/permute_2/en.py
+++ b/prolog/problems/lists/permute_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 107
name = 'permute/2'
slug = 'generate permutations of a list'
diff --git a/prolog/problems/lists/rev_2/common.py b/prolog/problems/lists/rev_2/common.py
index 79c5fca..c31e25b 100644
--- a/prolog/problems/lists/rev_2/common.py
+++ b/prolog/problems/lists/rev_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 111
group = 'lists'
number = 18
diff --git a/prolog/problems/lists/rev_2/en.py b/prolog/problems/lists/rev_2/en.py
index 9cacc95..c4800b6 100644
--- a/prolog/problems/lists/rev_2/en.py
+++ b/prolog/problems/lists/rev_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 111
name = 'rev/2'
slug = 'reverse a list'
diff --git a/prolog/problems/lists/shiftleft_2/common.py b/prolog/problems/lists/shiftleft_2/common.py
index a8d56a7..f8e09f2 100644
--- a/prolog/problems/lists/shiftleft_2/common.py
+++ b/prolog/problems/lists/shiftleft_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 113
group = 'lists'
number = 20
diff --git a/prolog/problems/lists/shiftleft_2/en.py b/prolog/problems/lists/shiftleft_2/en.py
index 0f4b807..72d55e5 100644
--- a/prolog/problems/lists/shiftleft_2/en.py
+++ b/prolog/problems/lists/shiftleft_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 113
name = 'shiftleft/2'
slug = 'shift a list left'
diff --git a/prolog/problems/lists/shiftright_2/common.py b/prolog/problems/lists/shiftright_2/common.py
index 3d5c3a5..e443332 100644
--- a/prolog/problems/lists/shiftright_2/common.py
+++ b/prolog/problems/lists/shiftright_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 114
group = 'lists'
number = 21
diff --git a/prolog/problems/lists/shiftright_2/en.py b/prolog/problems/lists/shiftright_2/en.py
index 8e2a57c..3f20565 100644
--- a/prolog/problems/lists/shiftright_2/en.py
+++ b/prolog/problems/lists/shiftright_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 114
name = 'shiftright/2'
slug = 'shift a list right'
diff --git a/prolog/problems/lists/sublist_2/common.py b/prolog/problems/lists/sublist_2/common.py
index 84c0bc8..f9cef37 100644
--- a/prolog/problems/lists/sublist_2/common.py
+++ b/prolog/problems/lists/sublist_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 117
group = 'lists'
number = 24
diff --git a/prolog/problems/lists/sublist_2/en.py b/prolog/problems/lists/sublist_2/en.py
index 5b6808b..e17270b 100644
--- a/prolog/problems/lists/sublist_2/en.py
+++ b/prolog/problems/lists/sublist_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 117
name = 'sublist/2'
slug = 'generate sublists of a list'
diff --git a/prolog/problems/lists/sum_2/common.py b/prolog/problems/lists/sum_2/common.py
index 14b0614..106f310 100644
--- a/prolog/problems/lists/sum_2/common.py
+++ b/prolog/problems/lists/sum_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 118
group = 'lists'
number = 25
diff --git a/prolog/problems/lists/sum_2/en.py b/prolog/problems/lists/sum_2/en.py
index 8db0e67..fb47a1f 100644
--- a/prolog/problems/lists/sum_2/en.py
+++ b/prolog/problems/lists/sum_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 118
name = 'sum/2'
slug = 'find the sum of all elements in list'
diff --git a/prolog/problems/old_exams/pascal_3/common.py b/prolog/problems/old_exams/pascal_3/common.py
index 7fcb55e..ebbc114 100644
--- a/prolog/problems/old_exams/pascal_3/common.py
+++ b/prolog/problems/old_exams/pascal_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 179
group = 'old_exams'
number = 86
diff --git a/prolog/problems/old_exams/pascal_3/en.py b/prolog/problems/old_exams/pascal_3/en.py
index 31a0d47..0506004 100644
--- a/prolog/problems/old_exams/pascal_3/en.py
+++ b/prolog/problems/old_exams/pascal_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 179
name = 'pascal/3'
slug = 'pascal's triangle'
diff --git a/prolog/problems/other/genlist_4/common.py b/prolog/problems/other/genlist_4/common.py
index 388c041..83f4b0e 100644
--- a/prolog/problems/other/genlist_4/common.py
+++ b/prolog/problems/other/genlist_4/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 127
group = 'other'
number = 34
diff --git a/prolog/problems/other/genlist_4/en.py b/prolog/problems/other/genlist_4/en.py
index 488ccf2..51ef8ea 100644
--- a/prolog/problems/other/genlist_4/en.py
+++ b/prolog/problems/other/genlist_4/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 127
name = 'genlist/4'
slug = 'generate a list of random numbers'
diff --git a/prolog/problems/sets/diff_3/common.py b/prolog/problems/sets/diff_3/common.py
index 76b88ed..82a6fe9 100644
--- a/prolog/problems/sets/diff_3/common.py
+++ b/prolog/problems/sets/diff_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 130
group = 'sets'
number = 37
diff --git a/prolog/problems/sets/diff_3/en.py b/prolog/problems/sets/diff_3/en.py
index a2fc55d..7ce6944 100644
--- a/prolog/problems/sets/diff_3/en.py
+++ b/prolog/problems/sets/diff_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 130
name = 'diff/3'
slug = 'find the difference of two sets'
diff --git a/prolog/problems/sets/intersect_3/common.py b/prolog/problems/sets/intersect_3/common.py
index ffa4f89..b2250e6 100644
--- a/prolog/problems/sets/intersect_3/common.py
+++ b/prolog/problems/sets/intersect_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 129
group = 'sets'
number = 36
diff --git a/prolog/problems/sets/intersect_3/en.py b/prolog/problems/sets/intersect_3/en.py
index b4296e4..def0ab5 100644
--- a/prolog/problems/sets/intersect_3/en.py
+++ b/prolog/problems/sets/intersect_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 129
name = 'intersect/3'
slug = 'find the intersection of two sets'
diff --git a/prolog/problems/sets/is_subset_2/common.py b/prolog/problems/sets/is_subset_2/common.py
index 5b365ee..330ca21 100644
--- a/prolog/problems/sets/is_subset_2/common.py
+++ b/prolog/problems/sets/is_subset_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 132
group = 'sets'
number = 39
diff --git a/prolog/problems/sets/is_subset_2/en.py b/prolog/problems/sets/is_subset_2/en.py
index ae2c113..b851d82 100644
--- a/prolog/problems/sets/is_subset_2/en.py
+++ b/prolog/problems/sets/is_subset_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 132
name = 'is_subset/2'
slug = 'check if one set is a subset of another'
diff --git a/prolog/problems/sets/is_superset_2/common.py b/prolog/problems/sets/is_superset_2/common.py
index 364c513..356ca34 100644
--- a/prolog/problems/sets/is_superset_2/common.py
+++ b/prolog/problems/sets/is_superset_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 131
group = 'sets'
number = 38
diff --git a/prolog/problems/sets/is_superset_2/en.py b/prolog/problems/sets/is_superset_2/en.py
index 218c0c8..16b3db0 100644
--- a/prolog/problems/sets/is_superset_2/en.py
+++ b/prolog/problems/sets/is_superset_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 131
name = 'is_superset/2'
slug = 'check if one set is a superset of the other'
diff --git a/prolog/problems/sets/powerset_2/common.py b/prolog/problems/sets/powerset_2/common.py
index 8f3b70e..1561eed 100644
--- a/prolog/problems/sets/powerset_2/common.py
+++ b/prolog/problems/sets/powerset_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 134
group = 'sets'
number = 41
diff --git a/prolog/problems/sets/powerset_2/en.py b/prolog/problems/sets/powerset_2/en.py
index 6471469..dcaee19 100644
--- a/prolog/problems/sets/powerset_2/en.py
+++ b/prolog/problems/sets/powerset_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 134
name = 'powerset/2'
slug = 'find all subsets of a set'
diff --git a/prolog/problems/sets/subset_2/common.py b/prolog/problems/sets/subset_2/common.py
index 7fbbf49..4cc2260 100644
--- a/prolog/problems/sets/subset_2/common.py
+++ b/prolog/problems/sets/subset_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 133
group = 'sets'
number = 40
diff --git a/prolog/problems/sets/subset_2/en.py b/prolog/problems/sets/subset_2/en.py
index 9d9132b..78c1362 100644
--- a/prolog/problems/sets/subset_2/en.py
+++ b/prolog/problems/sets/subset_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 133
name = 'subset/2'
slug = 'generate all subsets of a set'
diff --git a/prolog/problems/sets/union_3/common.py b/prolog/problems/sets/union_3/common.py
index a219673..bd77d3a 100644
--- a/prolog/problems/sets/union_3/common.py
+++ b/prolog/problems/sets/union_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 128
group = 'sets'
number = 35
diff --git a/prolog/problems/sets/union_3/en.py b/prolog/problems/sets/union_3/en.py
index 8257415..1c9379e 100644
--- a/prolog/problems/sets/union_3/en.py
+++ b/prolog/problems/sets/union_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 128
name = 'union/3'
slug = 'find the union of two sets'
diff --git a/prolog/problems/sorting/is_sorted_1/common.py b/prolog/problems/sorting/is_sorted_1/common.py
index 2feb134..4bb3fa9 100644
--- a/prolog/problems/sorting/is_sorted_1/common.py
+++ b/prolog/problems/sorting/is_sorted_1/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 121
group = 'sorting'
number = 28
diff --git a/prolog/problems/sorting/is_sorted_1/en.py b/prolog/problems/sorting/is_sorted_1/en.py
index c4bd025..ab8e2dc 100644
--- a/prolog/problems/sorting/is_sorted_1/en.py
+++ b/prolog/problems/sorting/is_sorted_1/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 121
name = 'is_sorted/1'
slug = 'check if list is sorted'
diff --git a/prolog/problems/sorting/isort_2/common.py b/prolog/problems/sorting/isort_2/common.py
index 0b1aa47..94f5f42 100644
--- a/prolog/problems/sorting/isort_2/common.py
+++ b/prolog/problems/sorting/isort_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 123
group = 'sorting'
number = 30
diff --git a/prolog/problems/sorting/isort_2/en.py b/prolog/problems/sorting/isort_2/en.py
index 3a3dea0..d9b3796 100644
--- a/prolog/problems/sorting/isort_2/en.py
+++ b/prolog/problems/sorting/isort_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 123
name = 'isort/2'
slug = 'sort a list using insertion sort'
diff --git a/prolog/problems/sorting/pivoting_4/common.py b/prolog/problems/sorting/pivoting_4/common.py
index 278f694..a8ff2f4 100644
--- a/prolog/problems/sorting/pivoting_4/common.py
+++ b/prolog/problems/sorting/pivoting_4/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 124
group = 'sorting'
number = 31
diff --git a/prolog/problems/sorting/pivoting_4/en.py b/prolog/problems/sorting/pivoting_4/en.py
index 4a1ab8c..5a5e171 100644
--- a/prolog/problems/sorting/pivoting_4/en.py
+++ b/prolog/problems/sorting/pivoting_4/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 124
name = 'pivoting/4'
slug = 'split a list according to the pivot'
diff --git a/prolog/problems/sorting/quick_sort_2/common.py b/prolog/problems/sorting/quick_sort_2/common.py
index 5eff940..9c2b261 100644
--- a/prolog/problems/sorting/quick_sort_2/common.py
+++ b/prolog/problems/sorting/quick_sort_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 125
group = 'sorting'
number = 32
diff --git a/prolog/problems/sorting/quick_sort_2/en.py b/prolog/problems/sorting/quick_sort_2/en.py
index b0d4ce1..bed1a83 100644
--- a/prolog/problems/sorting/quick_sort_2/en.py
+++ b/prolog/problems/sorting/quick_sort_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 125
name = 'quick_sort/2'
slug = 'sort a list using quicksort'
diff --git a/prolog/problems/sorting/sins_3/common.py b/prolog/problems/sorting/sins_3/common.py
index 8ebfee4..ba50e65 100644
--- a/prolog/problems/sorting/sins_3/common.py
+++ b/prolog/problems/sorting/sins_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 122
group = 'sorting'
number = 29
diff --git a/prolog/problems/sorting/sins_3/en.py b/prolog/problems/sorting/sins_3/en.py
index 684a619..384fbf7 100644
--- a/prolog/problems/sorting/sins_3/en.py
+++ b/prolog/problems/sorting/sins_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 122
name = 'sins/3'
slug = 'insert an element at correct position into a sorted list'
diff --git a/prolog/problems/sorting/slowest_sort_ever_2/common.py b/prolog/problems/sorting/slowest_sort_ever_2/common.py
index 5f4c283..267f06a 100644
--- a/prolog/problems/sorting/slowest_sort_ever_2/common.py
+++ b/prolog/problems/sorting/slowest_sort_ever_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 126
group = 'sorting'
number = 33
diff --git a/prolog/problems/sorting/slowest_sort_ever_2/en.py b/prolog/problems/sorting/slowest_sort_ever_2/en.py
index 3018ec6..0f39645 100644
--- a/prolog/problems/sorting/slowest_sort_ever_2/en.py
+++ b/prolog/problems/sorting/slowest_sort_ever_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 126
name = 'slowest_sort_ever/2'
slug = 'sort a list by randomly permuting elements'
diff --git a/prolog/problems/trees/deletebt_3/common.py b/prolog/problems/trees/deletebt_3/common.py
index 76550f6..0963d15 100644
--- a/prolog/problems/trees/deletebt_3/common.py
+++ b/prolog/problems/trees/deletebt_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 137
group = 'trees'
number = 47
diff --git a/prolog/problems/trees/deletebt_3/en.py b/prolog/problems/trees/deletebt_3/en.py
index 557efaa..a69ea15 100644
--- a/prolog/problems/trees/deletebt_3/en.py
+++ b/prolog/problems/trees/deletebt_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 137
name = 'deleteBT/3'
slug = 'delete an element from a binary tree'
diff --git a/prolog/problems/trees/depthbt_2/common.py b/prolog/problems/trees/depthbt_2/common.py
index 9e26f21..d8b255d 100644
--- a/prolog/problems/trees/depthbt_2/common.py
+++ b/prolog/problems/trees/depthbt_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 140
group = 'trees'
number = 45
diff --git a/prolog/problems/trees/depthbt_2/en.py b/prolog/problems/trees/depthbt_2/en.py
index 37cb3cd..5616bc0 100644
--- a/prolog/problems/trees/depthbt_2/en.py
+++ b/prolog/problems/trees/depthbt_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 140
name = 'depthBT/2'
slug = 'find the depth of a binary tree'
diff --git a/prolog/problems/trees/insertbt_3/common.py b/prolog/problems/trees/insertbt_3/common.py
index efbfb7d..1653183 100644
--- a/prolog/problems/trees/insertbt_3/common.py
+++ b/prolog/problems/trees/insertbt_3/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 138
group = 'trees'
number = 48
diff --git a/prolog/problems/trees/insertbt_3/en.py b/prolog/problems/trees/insertbt_3/en.py
index 202df0a..dec4050 100644
--- a/prolog/problems/trees/insertbt_3/en.py
+++ b/prolog/problems/trees/insertbt_3/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 138
name = 'insertBT/3'
slug = 'insert an element into a binary tree'
diff --git a/prolog/problems/trees/maxt_2/common.py b/prolog/problems/trees/maxt_2/common.py
index be51d46..264f5e2 100644
--- a/prolog/problems/trees/maxt_2/common.py
+++ b/prolog/problems/trees/maxt_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 143
group = 'trees'
number = 50
diff --git a/prolog/problems/trees/maxt_2/en.py b/prolog/problems/trees/maxt_2/en.py
index 3e15b34..18e99d4 100644
--- a/prolog/problems/trees/maxt_2/en.py
+++ b/prolog/problems/trees/maxt_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 143
name = 'maxT/2'
slug = 'find the greatest element in a tree'
diff --git a/prolog/problems/trees/memberbt_2/common.py b/prolog/problems/trees/memberbt_2/common.py
index f0ae0bd..e983b76 100644
--- a/prolog/problems/trees/memberbt_2/common.py
+++ b/prolog/problems/trees/memberbt_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 135
group = 'trees'
number = 42
diff --git a/prolog/problems/trees/memberbt_2/en.py b/prolog/problems/trees/memberbt_2/en.py
index fcca1d9..e9b87a6 100644
--- a/prolog/problems/trees/memberbt_2/en.py
+++ b/prolog/problems/trees/memberbt_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 135
name = 'memberBT/2'
slug = 'find elements in a binary tree'
diff --git a/prolog/problems/trees/membert_2/common.py b/prolog/problems/trees/membert_2/common.py
index 177309f..33a966d 100644
--- a/prolog/problems/trees/membert_2/common.py
+++ b/prolog/problems/trees/membert_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 142
group = 'trees'
number = 49
diff --git a/prolog/problems/trees/membert_2/en.py b/prolog/problems/trees/membert_2/en.py
index a6fdffb..9095e08 100644
--- a/prolog/problems/trees/membert_2/en.py
+++ b/prolog/problems/trees/membert_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 142
name = 'memberT/2'
slug = 'find elements in a tree'
diff --git a/prolog/problems/trees/mirrorbt_2/common.py b/prolog/problems/trees/mirrorbt_2/common.py
index dc8d337..c10f433 100644
--- a/prolog/problems/trees/mirrorbt_2/common.py
+++ b/prolog/problems/trees/mirrorbt_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 136
group = 'trees'
number = 43
diff --git a/prolog/problems/trees/mirrorbt_2/en.py b/prolog/problems/trees/mirrorbt_2/en.py
index d44f463..797ca93 100644
--- a/prolog/problems/trees/mirrorbt_2/en.py
+++ b/prolog/problems/trees/mirrorbt_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 136
name = 'mirrorBT/2'
slug = 'flip a binary tree horizontally'
diff --git a/prolog/problems/trees/numberbt_2/common.py b/prolog/problems/trees/numberbt_2/common.py
index 65baa14..a7499c2 100644
--- a/prolog/problems/trees/numberbt_2/common.py
+++ b/prolog/problems/trees/numberbt_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 139
group = 'trees'
number = 44
diff --git a/prolog/problems/trees/numberbt_2/en.py b/prolog/problems/trees/numberbt_2/en.py
index 6f735ed..d0f835c 100644
--- a/prolog/problems/trees/numberbt_2/en.py
+++ b/prolog/problems/trees/numberbt_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 139
name = 'numberBT/2'
slug = 'find the number of nodes in a binary tree'
diff --git a/prolog/problems/trees/tolistbt_2/common.py b/prolog/problems/trees/tolistbt_2/common.py
index 6df7cdd..c9765df 100644
--- a/prolog/problems/trees/tolistbt_2/common.py
+++ b/prolog/problems/trees/tolistbt_2/common.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 141
group = 'trees'
number = 46
diff --git a/prolog/problems/trees/tolistbt_2/en.py b/prolog/problems/trees/tolistbt_2/en.py
index c4bf5ba..e67fffb 100644
--- a/prolog/problems/trees/tolistbt_2/en.py
+++ b/prolog/problems/trees/tolistbt_2/en.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
id = 141
name = 'tolistBT/2'
slug = 'construct a list with all elements of a binary tree'