diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -146,3 +146,9 @@
 
 * The twelth version revised A. Fixed issues in the documentation for the installation and upgrading processes.
 
+## 0.13.0.0 -- 2021-10-15
+
+* The thirteenth version. Added the possibility to use just pairwise permutations
+instead of the full universal set of them. Updated the dependency boundaries and the documentation
+appropriately. Fixed the issue with not properly documented (re-)installation process for the package(s).
+
diff --git a/Phonetic/Languages/General/GetInfo/Parsing.hs b/Phonetic/Languages/General/GetInfo/Parsing.hs
--- a/Phonetic/Languages/General/GetInfo/Parsing.hs
+++ b/Phonetic/Languages/General/GetInfo/Parsing.hs
@@ -52,14 +52,16 @@
   -- exact one and, therefore, the default one.
  -> IO ()
 argsToGetInfoProcessment h qs = do
- args40 <- getArgs
- let (!args14,!args000) = splitAt 4 args40
+ args50 <- getArgs
+ let args40 = filter (/= "+p") args50
+     pairwisePermutations = any (== "+p") args50
+     (!args14,!args000) = splitAt 4 args40
      [fileGWrSys, controlFile, segmentRulesFile, concatenationsFileP] = args14
-     
- files4ArgsProcessment fileGWrSys controlFile segmentRulesFile concatenationsFileP h qs args000
+ files4ArgsProcessment pairwisePermutations fileGWrSys controlFile segmentRulesFile concatenationsFileP h qs args000
 
 files4ArgsProcessment
-  :: FilePath -- ^ With the 'GWritingSystemPRPLX' specifications only (see the gwrsysExample.txt file in the @phonetic-languages-phonetics-basics@ package as a schema);
+  :: Bool -- ^ Whether to use just pairwise permutations, or the full universal set.
+  -> FilePath -- ^ With the 'GWritingSystemPRPLX' specifications only (see the gwrsysExample.txt file in the @phonetic-languages-phonetics-basics@ package as a schema);
   -> FilePath -- ^ With the 5 meaningful lines that are delimited with the \'~\' line one from another with the specifications for the possible allophones (if any), 'CharPhoneticClassification', white spaces information (two 'String's) and the 'String' of all the possible 'PLL' 'Char's;
   -> FilePath -- ^ With the 'SegmentRulesG' specifications only;
   -> FilePath -- ^ With the 'Concatenations' specifications only (see the data in the EnglishConcatenated.txt file in the @phonetic-languages-phonetics-basics@ package as a list of English equivalents of the needed 'String's).
@@ -72,7 +74,7 @@
   -- exact one and, therefore, the default one.
   -> [String] -- ^ List of other command line arguments
   -> IO ()
-files4ArgsProcessment !fileGWrSys !controlFile !segmentRulesFile !concatenationsFileP h qs args000 = do
+files4ArgsProcessment pairwisePermutations !fileGWrSys !controlFile !segmentRulesFile !concatenationsFileP h qs args000 = do
  let !args00 = filter (\ts -> take 2 ts /= "+x" && ts /= "+b" && take 2 ts /= "+g") args000
      !growing = filter ((== "+g") . (take 2)) args000
      (!gr1,!gr2)
@@ -92,16 +94,16 @@
      !numbersJustPrint =  filter (== "@n") args0
      (!wrs, !ks, !arr, !gs, !js, !vs, !ysss, !xs) = innerProcessmentSimple fileGWrSys controlFile segmentRulesFile concatenationsFileP
  if isPair coeffs then do
-  let !file = concat . drop 1 . take 2 $ args  
+  let !file = concat . drop 1 . take 2 $ args
   if null numbersJustPrint then do
-   let !gzS = concat . take 1 . drop 2 $ args 
+   let !gzS = concat . take 1 . drop 2 $ args
        !printLine = fromMaybe 0 (readMaybe (concat . take 1 . drop 3 $ args)::(Maybe Int))
        !toOneLine = fromMaybe 0 (readMaybe (concat . take 1 . drop 4 $ args)::(Maybe Int))
-       !choice = concat . drop 5 . take 6 $ args 
-   generalProc (gr1,gr2) wrs ks arr gs h qs ysss xs js vs {- the old arguments follow -} lstW multiples lInes coeffs coeffsWX file gzS printLine toOneLine choice
+       !choice = concat . drop 5 . take 6 $ args
+   generalProc pairwisePermutations (gr1,gr2) wrs ks arr gs h qs ysss xs js vs {- the old arguments follow -} lstW multiples lInes coeffs coeffsWX file gzS printLine toOneLine choice
   else do
    contents <- readFile file
-   fLinesIO ysss xs js vs contents 
+   fLinesNIO (if pairwisePermutations then 10 else 7) ysss xs js vs contents
  else do
   let !file = concat . take 1 $ args
   if null numbersJustPrint then do
@@ -109,7 +111,7 @@
        !printLine = fromMaybe 0 (readMaybe (concat . take 1 . drop 2 $ args)::(Maybe Int))
        !toOneLine = fromMaybe 0 (readMaybe (concat . take 1 . drop 3 $ args)::(Maybe Int))
        !choice = concat . drop 4 . take 5 $ args
-   generalProc (gr1,gr2) wrs ks arr gs h qs ysss xs js vs {- the old arguments follow -} lstW multiples lInes coeffs coeffsWX file gzS printLine toOneLine choice
+   generalProc pairwisePermutations (gr1,gr2) wrs ks arr gs h qs ysss xs js vs {- the old arguments follow -} lstW multiples lInes coeffs coeffsWX file gzS printLine toOneLine choice
   else do
    contents <- readFile file
-   fLinesIO ysss xs js vs contents
+   fLinesNIO (if pairwisePermutations then 10 else 7) ysss xs js vs contents
diff --git a/Phonetic/Languages/General/GetTextualInfo.hs b/Phonetic/Languages/General/GetTextualInfo.hs
--- a/Phonetic/Languages/General/GetTextualInfo.hs
+++ b/Phonetic/Languages/General/GetTextualInfo.hs
@@ -41,6 +41,7 @@
 import Phonetic.Languages.Array.General.PropertiesSyllablesG2
 import Phonetic.Languages.Simplified.StrictVG.Base
 import Phonetic.Languages.Permutations.Arr
+import Phonetic.Languages.Permutations.ArrMini
 import Phonetic.Languages.Simplified.DataG.Base
 import Phonetic.Languages.Simplified.Array.General.FuncRep2RelatedG2
 import Languages.UniquenessPeriods.Array.Constraints.Encoded
@@ -50,10 +51,11 @@
 import Data.Phonetic.Languages.Syllables
 
 generalProc
- :: (Int,Int) -- ^ Argument to specify possible 'line growing'.
+ :: Bool -- ^ Whether to use just pairwise permutations, or the full universal set.
+ -> (Int,Int) -- ^ Argument to specify possible 'line growing'.
  -> GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
  -> [(Char,Char)] -- ^ The pairs of the 'Char' that corresponds to the similar phonetic languages consonant phenomenon
-  -- (e. g. allophones). Must be sorted in the ascending order to be used correctly. 
+  -- (e. g. allophones). Must be sorted in the ascending order to be used correctly.
  -> CharPhoneticClassification -- ^ The 'Array' 'Int' 'PRS' must be sorted in the ascending order to be used in the module correctly.
  -> SegmentRulesG
  -> (Double -> String -> ([[[PRS]]] -> [[Double]])) -- ^ The function that is needed in the 'procRhythmicity23F' function.
@@ -88,19 +90,19 @@
  -- Besides there are new lines of the arguments for the 'String' argument that can begin with \"c\", \"s\", \"t\",
  -- \"u\", \"v\" letters. For more information, please, refer to the 'Phonetic.Languages.Array.Ukrainian.PropertiesSyllablesG2.rhythmicity'.
  -> IO ()
-generalProc (gr1,gr2) wrs ks arr gs h rs ysss xs js vs lstW multiples2 lInes coeffs coeffsWX file gzS printLine toOneLine choice
+generalProc pairwisePermutations (gr1,gr2) wrs ks arr gs h rs ysss xs js vs lstW multiples2 lInes coeffs coeffsWX file gzS printLine toOneLine choice
  | null lInes = do
     contents <- readFile file
-    let !flines 
-           | gr1 == 0 = fLines ysss xs js vs toOneLine contents
-           | otherwise = prepareGrowTextMN gr1 gr2 ysss xs . unlines . fLines ysss xs js vs toOneLine $ contents
-    getData3  wrs ks arr gs js vs h rs lstW coeffs coeffsWX (getIntervalsNS lstW gzS flines) printLine choice multiples2 flines
+    let !flines
+           | gr1 == 0 = fLinesN (if pairwisePermutations then 10 else 7) ysss xs js vs toOneLine contents
+           | otherwise = prepareGrowTextMN gr1 gr2 ysss xs . unlines . fLinesN (if pairwisePermutations then 10 else 7) ysss xs js vs toOneLine $ contents
+    getData3 pairwisePermutations wrs ks arr gs js vs h rs lstW coeffs coeffsWX (getIntervalsNS lstW gzS flines) printLine choice multiples2 flines
  | otherwise = do
     contents <- readFile file
     let !flines
-           | gr1 == 0 = fLines ysss xs js vs toOneLine . unlines . linesFromArgsG lInes . fLines ysss xs js vs 0 $ contents
-           | otherwise = prepareGrowTextMN gr1 gr2 ysss xs . unlines . fLines ysss xs js vs toOneLine . unlines . linesFromArgsG lInes . fLines ysss xs js vs 0 $ contents
-    getData3  wrs ks arr gs js vs h rs lstW coeffs coeffsWX (getIntervalsNS lstW gzS flines) printLine choice multiples2 flines
+           | gr1 == 0 = fLinesN (if pairwisePermutations then 10 else 7) ysss xs js vs toOneLine . unlines . linesFromArgsG lInes . fLines ysss xs js vs 0 $ contents
+           | otherwise = prepareGrowTextMN gr1 gr2 ysss xs . unlines . fLinesN (if pairwisePermutations then 10 else 7) ysss xs js vs toOneLine . unlines . linesFromArgsG lInes . fLines ysss xs js vs 0 $ contents
+    getData3 pairwisePermutations wrs ks arr gs js vs h rs lstW coeffs coeffsWX (getIntervalsNS lstW gzS flines) printLine choice multiples2 flines
 
 linesFromArgs1
  :: Int
@@ -116,9 +118,10 @@
 linesFromArgsG xss yss = let n = length yss in concatMap (\ts -> linesFromArgs1 n ts yss) xss
 
 getData3
- :: GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
+ :: Bool -- ^ Whether to use just pairwise permutations, or the full universal set.
+ -> GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
  -> [(Char,Char)] -- ^ The pairs of the 'Char' that corresponds to the similar phonetic languages consonant phenomenon
-  -- (e. g. allophones). Must be sorted in the ascending order to be used correctly. 
+  -- (e. g. allophones). Must be sorted in the ascending order to be used correctly.
  -> CharPhoneticClassification -- ^ The 'Array' 'Int' 'PRS' must be sorted in the ascending order to be used in the module correctly.
  -> SegmentRulesG
  -> String
@@ -148,12 +151,12 @@
  -> [String]
  -> [String]
  -> IO ()
-getData3 wrs ks arr gs js vs h rs lstW coeffs coeffsWX gz printLine choice multiples3 zss = let !permsV4 = genPermutationsArrL in putStrLn (replicate (length multiples3 + 1) '\t' `mappend` show gz) >> mapM_ (process1Line wrs ks arr gs js vs h rs lstW coeffs coeffsWX gz printLine choice multiples3 permsV4) zss
+getData3 pairwisePermutations wrs ks arr gs js vs h rs lstW coeffs coeffsWX gz printLine choice multiples3 zss = let !permsV4 = if pairwisePermutations then genPairwisePermutationsArrLN 10 else genPermutationsArrL in putStrLn (replicate (length multiples3 + 1) '\t' `mappend` show gz) >> mapM_ (process1Line wrs ks arr gs js vs h rs lstW coeffs coeffsWX gz printLine choice multiples3 permsV4) zss
 
 process1Line
  :: GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
  -> [(Char,Char)] -- ^ The pairs of the 'Char' that corresponds to the similar phonetic languages consonant phenomenon
-  -- (e. g. allophones). Must be sorted in the ascending order to be used correctly. 
+  -- (e. g. allophones). Must be sorted in the ascending order to be used correctly.
  -> CharPhoneticClassification -- ^ The 'Array' 'Int' 'PRS' must be sorted in the ascending order to be used in the module correctly.
  -> SegmentRulesG
  -> String
@@ -191,7 +194,7 @@
          !l2 = length v2 - 2
      if l2 >= (if lstW then 1 else 0) then do
       let !permsV5 = decodeConstraint1 (fromMaybe (E 1) . readMaybeECG (l2 + 1) . showB (l2 + 2) $ lstW) .
-            unsafeAt permsV50 $ l2 
+            unsafeAt permsV50 $ l2
           ((!minE,!maxE),!data2) = runEval (parTuple2 rpar rpar (minMax11C . map (toTransPropertiesF' (if take 1 choice == "w" || take 1 choice == "x" then chooseMax wrs ks arr gs js vs id h coeffsWX qs choice else chooseMax wrs ks arr gs js vs id h coeffs qs choice)) .
                 uniquenessVariants2GNBL ' ' id id id permsV5 $ v2, toTransPropertiesF' (if take 1 choice == "w" || take 1 choice == "x" then chooseMax wrs ks arr gs js vs id h coeffsWX qs choice else chooseMax wrs ks arr gs js vs id h coeffs qs choice) .
                  unwords . subG (' ':js `mappend` vs) $ v))
@@ -215,7 +218,7 @@
         !l2 = length v2 - 2
     if l2 >= (if lstW then 1 else 0) then do
      let !permsV5 = decodeConstraint1 (fromMaybe (E 1) . readMaybeECG (l2 + 1) . showB (l2 + 2) $ lstW) .
-            unsafeAt permsV50 $ l2 
+            unsafeAt permsV50 $ l2
          rs = parMap rpar (\choiceMMs -> (minMax11C .
            map (toTransPropertiesF' (if take 1 choiceMMs == "w" || take 1 choiceMMs == "x" then chooseMax wrs ks arr gs js vs id h coeffsWX qs choiceMMs else chooseMax wrs ks arr gs js vs id h coeffs qs choiceMMs)) .
              uniquenessVariants2GNBL ' ' id id id permsV5 $ v2,
diff --git a/Phonetic/Languages/General/Lines.hs b/Phonetic/Languages/General/Lines.hs
--- a/Phonetic/Languages/General/Lines.hs
+++ b/Phonetic/Languages/General/Lines.hs
@@ -27,6 +27,7 @@
 import Phonetic.Languages.Array.General.PropertiesSyllablesG2
 import Phonetic.Languages.Simplified.StrictVG.Base
 import Phonetic.Languages.Permutations.Arr
+import Phonetic.Languages.Permutations.ArrMini
 import Phonetic.Languages.Filters (unsafeSwapVecIWithMaxI)
 import Text.Read (readMaybe)
 import Data.Maybe (fromMaybe)
@@ -45,7 +46,8 @@
 saved with the choice prefix.
 -}
 generalProcessment
- :: (Int,Int) -- ^ Argument to specify possible 'line growing'.
+ :: Bool  -- ^ Whether to use just pairwise permutations, or the full universal set.
+ -> (Int,Int) -- ^ Argument to specify possible 'line growing'.
  -> GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
  -> [(Char,Char)] -- ^ The pairs of the 'Char' that corresponds to the similar phonetic languages consonant phenomenon
   -- (e. g. allophones). Must be sorted in the ascending order to be used correctly.
@@ -69,12 +71,14 @@
  -> Int
  -> FilePath
  -> IO ()
-generalProcessment (gr1,gr2) wrs ks arr gs h rs ysss xs js vs coeffs numericArgs choices numberI file = do
+generalProcessment pairwisePermutations (gr1,gr2) wrs ks arr gs h rs ysss xs js vs coeffs numericArgs choices numberI file = do
   contents <- readFile file
-  let !permsV = genPermutationsArrL
+  let !permsV
+        | pairwisePermutations = genPairwisePermutationsArrLN 10
+        | otherwise = genPermutationsArrL
       !flines
-        | gr1 == 0 = fLines ysss xs js vs 0 contents
-        | otherwise = prepareGrowTextMN gr1 gr2 ysss xs . unlines . fLines ysss xs js vs 0 $ contents
+        | gr1 == 0 = fLinesN (if pairwisePermutations then 10 else 7) ysss xs js vs 0 contents
+        | otherwise = prepareGrowTextMN gr1 gr2 ysss xs . unlines . fLinesN (if pairwisePermutations then 10 else 7) ysss xs js vs 0 $ contents
       !lasts = map (\ts -> if null . words $ ts then [] else last . words $ ts) flines
   if compare numberI 2 == LT then
     mapM_ (\choice -> toFileStr (choice ++ "." ++ file ++ ".new.txt") (circle2 wrs ks arr gs js vs h rs coeffs permsV choice [] $ flines)) choices
diff --git a/Phonetic/Languages/General/Lines/Parsing.hs b/Phonetic/Languages/General/Lines/Parsing.hs
--- a/Phonetic/Languages/General/Lines/Parsing.hs
+++ b/Phonetic/Languages/General/Lines/Parsing.hs
@@ -58,8 +58,10 @@
   -- exact one and, therefore, the default one.
  -> IO ()
 argsToLinePrepare h qs = do
- args000 <- getArgs
- let multiple = if null . filter (== "+m") $ args000 then 0 else 1
+ args50 <- getArgs
+ let args000 = filter (/= "+p") args50
+     pairwisePermutations = any (== "+p") args50
+     multiple = if null . filter (== "+m") $ args000 then 0 else 1
      args00
        | multiple == 1 = takeWhile (/= "+m") args000 `mappend` drop 1 (dropWhile (/= "-m") args000)
        | otherwise = args000
@@ -87,7 +89,7 @@
       args0 = drop 5 args000
       [fileGWrSys, controlFile, segmentRulesFile, concatenationsFileP] = drop 1 . take 5 $ args00 -- To get the valid 'Concatenations' data.
   (wrs, ks, arr, gs, js, vs, ysss, xs, numericArgs, choices, numberI, file) <- files4Processment fileGWrSys controlFile segmentRulesFile concatenationsFileP multiple args0
-  generalProcessment (gr1,gr2) wrs ks arr gs h qs ysss xs js vs {- the old arguments afterwards -} coeffs numericArgs choices numberI file
+  generalProcessment pairwisePermutations (gr1,gr2) wrs ks arr gs h qs ysss xs js vs {- the old arguments afterwards -} coeffs numericArgs choices numberI file
 
 -- | Is used internally in the 'argsToLinePrepare'. Nevertheless, can be used independently if the semantics
 -- of the arguments and their structure are preserved.
@@ -113,4 +115,3 @@
       !file = concat . take 1 $ args0
       (wrs, ks, arr, gs, js, vs, ysss, xs) = innerProcessmentSimple gwrsCnts controlConts segmentData concatenationsFile
         in return (wrs, ks, arr, gs, js, vs, ysss, xs, numericArgs, choices, numberI, file)
-
diff --git a/Phonetic/Languages/General/Simple.hs b/Phonetic/Languages/General/Simple.hs
--- a/Phonetic/Languages/General/Simple.hs
+++ b/Phonetic/Languages/General/Simple.hs
@@ -30,6 +30,7 @@
 import qualified Data.List  as L (span,sort,zip4,isPrefixOf,nub)
 import Phonetic.Languages.Simplified.Array.General.FuncRep2RelatedG2
 import Phonetic.Languages.Permutations.Arr
+import Phonetic.Languages.Permutations.ArrMini
 import Data.SubG hiding (takeWhile,dropWhile)
 import Data.Maybe
 import Data.MinMax.Preconditions
@@ -52,7 +53,8 @@
 {-| Is used to organize the most complex processment -- for multiple sources and probably recursively.
 -}
 generalProc3G
- :: (String -> Bool) -- ^ The predicate that checks whether the given argument is not a phonetic language word in the representation.
+ :: Bool -- ^ Whether to use just pairwise permutations, or the full universal set.
+ -> (String -> Bool) -- ^ The predicate that checks whether the given argument is not a phonetic language word in the representation.
  -> [String]
  -> String -- ^ If empty, the function is just 'generalProc2G' with the arguments starting from the first 'Bool' here.
  -> Int
@@ -83,34 +85,38 @@
  -> [String]
  -> Bool
  -> IO ()
-generalProc3G p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss ws toFile1 recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2
- | null textProcessment0 = generalProc2G wrs ks arr gs js vs h qs ysss ws toFile1 recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2
+generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss ws toFile1 recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2
+ | null textProcessment0 = generalProc2G pairwisePermutations wrs ks arr gs js vs h qs ysss ws toFile1 recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2
  | null textProcessmentFss = mapM_ (\_ -> do  -- interactive training mode
     putStrLn . messageInfo $ 7
     lineA <- getLine
-    generalProc2G wrs ks arr gs js vs h qs ysss ws toFile1 recursiveMode interactive jstL0
+    generalProc2G pairwisePermutations wrs ks arr gs js vs h qs ysss ws toFile1 recursiveMode interactive jstL0
       (fullArgsConvertTextualSimple p lineA args0) coeffs coeffsWX (fullArgsConvertTextualSimple p lineA args)
       lstW2) [0..]
- | textProcessment1 `elem` [21,31,41,51,61,71] =
-    mapM_ (mapM_ (\tss -> generalProc2G wrs ks arr gs js vs h qs ysss ws toFile1 recursiveMode interactive jstL0
-                 (fullArgsConvertTextualSimple p tss args0) coeffs coeffsWX
-                 (fullArgsConvertTextualSimple p tss args) lstW2) .
-                  prepareTuneTextMN m 1 ysss ws . unwords . lines) textProcessmentFss
- | textProcessment1 `elem` [20,30,40,50,60,70] =
-    mapM_ (mapM_ (\tss -> generalProc2G wrs ks arr gs js vs h qs ysss ws toFile1 recursiveMode interactive jstL0
-                  (fullArgsConvertTextualSimple p tss args0) coeffs coeffsWX
-                  (fullArgsConvertTextualSimple p tss args) lstW2) . lines) textProcessmentFss
  | otherwise =
-    mapM_ (mapM_ (\tss -> generalProc2G wrs ks arr gs js vs h qs ysss ws toFile1 recursiveMode interactive jstL0
-                  (fullArgsConvertTextualSimple p tss args0) coeffs coeffsWX
-                  (fullArgsConvertTextualSimple p tss args) lstW2) .
-                  prepareTuneTextMN 7 1 ysss ws . unwords . lines) textProcessmentFss
-        where m = quot textProcessment1 10
-
+      mapM_ (\js -> do
+        let !kss = lines js
+        if pairwisePermutations then do
+          putStrLn . messageInfo $ 8
+          mStr <- getLine
+          let !m = fromMaybe 10 (readMaybe mStr::Maybe Int)
+              !wss = prepareTuneTextMN m 1 ysss ws . unwords $ kss
+          mapM_ (\tss -> generalProc2G pairwisePermutations wrs ks arr gs js vs h qs ysss ws toFile1 recursiveMode
+                 interactive jstL0 (fullArgsConvertTextualSimple p tss args0) coeffs coeffsWX
+                  (fullArgsConvertTextualSimple p tss args) lstW2) wss
+        else do
+          let !wss
+               | textProcessment1 `elem` [20,30,40,50,60,70] = kss
+               | otherwise = prepareTuneTextMN (if textProcessment1 `elem` [21,31,41,51,61] then m else 7) 1 ysss ws . unwords $ kss
+          mapM_ (\tss -> generalProc2G pairwisePermutations wrs ks arr gs js vs h qs ysss ws toFile1 recursiveMode interactive jstL0
+                 (fullArgsConvertTextualSimple p tss args0) coeffs coeffsWX
+                  (fullArgsConvertTextualSimple p tss args) lstW2) wss) textProcessmentFss
+     where m = quot textProcessment1 10
 
 -- | Is used to do general processment.
 generalProc2G
- :: GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
+ :: Bool -- ^ Whether to use just pairwise permutations, or the full universal set.
+ -> GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
  -> [(Char,Char)] -- ^ The pairs of the 'Char' that corresponds to the similar phonetic languages consonant phenomenon
   -- (e. g. allophones). Must be sorted in the ascending order to be used correctly.
  -> CharPhoneticClassification -- ^ The 'Array' 'Int' 'PRS' must be sorted in the ascending order to be used in the module correctly.
@@ -137,24 +143,25 @@
  -> [String]
  -> Bool
  -> IO ()
-generalProc2G wrs ks arr gs js vs h qs ysss ws toFile1 recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2
+generalProc2G pairwisePermutations wrs ks arr gs js vs h qs ysss ws toFile1 recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2
  | variations args = do
     let !zsss = transformToVariations args
     print zsss
-    variantsG <- mapM (\xss -> generalProc2 wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX xss lstW2) zsss
-    (if recursiveMode then interactivePrintResultRecursive wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX id variantsG args lstW2
+    variantsG <- mapM (\xss -> generalProc2 pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX xss lstW2) zsss
+    (if recursiveMode then interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX id variantsG args lstW2
      else interactivePrintResult id variantsG) >>= \rs ->
       case toFile1 of
        "" -> return ()
        ~fileName -> appendFile fileName (rs `mappend` newLineEnding)
- | otherwise = generalProc2 wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2 >>= \rs ->
+ | otherwise = generalProc2 pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2 >>= \rs ->
       case toFile1 of
        "" -> return ()
        ~fileName -> appendFile fileName (rs `mappend` newLineEnding)
 
 -- |
 generalProc2
-  :: GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
+  :: Bool -- ^ Whether to use just pairwise permutations, or the full universal set.
+  -> GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
   -> [(Char,Char)] -- ^ The pairs of the 'Char' that corresponds to the similar phonetic languages consonant phenomenon
   -- (e. g. allophones). Must be sorted in the ascending order to be used correctly.
   -> CharPhoneticClassification -- ^ The 'Array' 'Int' 'PRS' must be sorted in the ascending order to be used in the module correctly.
@@ -180,11 +187,11 @@
   -> [String]
   -> Bool
   -> IO String
-generalProc2 wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2 = do
+generalProc2 pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX args lstW2 = do
   let !argMss = take 5 . filter (not . null) . forMultiplePropertiesF . drop 1 . dropWhile (/= "+m") . takeWhile (/= "-m") $ args0
   if null argMss then do
    let (!numericArgs,!textualArgs) = L.span (all isDigit) $ args
-       !xs = concat . take 1 . fLines ysss ws js vs 0 . unwords . drop 1 $ textualArgs
+       !xs = concat . take 1 . prepareTuneTextMN (if pairwisePermutations then 10 else 7) 1 ysss ws . unwords . drop 1 $ textualArgs
        !l = length . words $ xs
        !argCs = catMaybes (fmap (readMaybeECG (l - 1)) . (showB l lstW2:) . drop 1 . dropWhile (/= "+a") .
           takeWhile (/= "-a") $ args0)
@@ -194,20 +201,20 @@
        !intervalNmbrs = (\zs -> if null zs then [numberI] else L.nub zs) . L.sort . filter (<= numberI) .
            map (\t -> fromMaybe numberI $ (readMaybe t::Maybe Int)) . drop 2 $ numericArgs
    if compare l 2 == LT then let !frep20 = chooseMax wrs ks arr gs js vs id h coeffs qs choice in let !wwss = (:[]) . toResultR frep20 $ xs in
-    if recursiveMode then interactivePrintResultRecursive wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX line wwss args lstW2
+    if recursiveMode then interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX line wwss args lstW2
     else if interactive then interactivePrintResult line wwss else print1el jstL0 choice wwss
    else do
     let !subs = subG (' ':js `mappend` vs) xs
     if null argCs then let !perms = genPermutationsL l in do
           temp <- generalProcMs wrs ks arr gs js vs h qs coeffs coeffsWX perms subs (intervalNmbrs, arg0, numberI, choice)
-          if recursiveMode then interactivePrintResultRecursive wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX line temp args lstW2
+          if recursiveMode then interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX line temp args lstW2
           else if interactive then interactivePrintResult line temp else print1el jstL0 choice temp
     else do
      correct <- printWarning xs
      if correct == "n" then putStrLn (messageInfo 1) >> return "" -- for the multiple variations mode (with curly brackets and slash in the text) the program does not stop here, but the variation is made empty and is proposed further as a variant.
      else let !perms = decodeLConstraints argCs . genPermutationsL $ l in do
           temp <- generalProcMs wrs ks arr gs js vs h qs coeffs coeffsWX perms subs (intervalNmbrs, arg0, numberI, choice)
-          if recursiveMode then interactivePrintResultRecursive wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX line temp args lstW2
+          if recursiveMode then interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX line temp args lstW2
           else if interactive then interactivePrintResult line temp else print1el jstL0 choice temp
   else do
    let !choices = map fst argMss
@@ -218,24 +225,26 @@
          (\zs -> if null zs then [numberI] else L.nub zs) . L.sort . filter (<= numberI) .
            map (\t -> fromMaybe numberI $ (readMaybe t::Maybe Int)) . drop 2 $ us) $ numericArgss
        !argsZipped = L.zip4 intervalNmbrss arg0s numberIs choices
-       !xs = concat . take 1 . fLines ysss ws js vs 0 . unwords $ args
+       !xs = concat . take 1 . prepareTuneTextMN (if pairwisePermutations then 10 else 7) 1 ysss ws . unwords $ args
        !l = length . words $ xs
        !argCs = catMaybes (fmap (readMaybeECG (l - 1)) . (showB l lstW2:) . drop 1 . dropWhile (/= "+a") .
           takeWhile (/= "-a") $ args0)
    if compare l 2 == LT then let !frep20 = chooseMax wrs ks arr gs js vs id h coeffs qs (concat . take 1 $ choices) in
     let !wwss = (:[]) . toResultR frep20 $ xs in
-       if recursiveMode then interactivePrintResultRecursive wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX line wwss args lstW2
+       if recursiveMode then interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX line wwss args lstW2
        else if interactive then interactivePrintResult line wwss
             else print1el jstL0 (concat . take 1 $ choices) wwss
    else do
     let !subs = subG (' ':js `mappend` vs) xs
-    if null argCs then let !perms = genPermutationsL l in
-      generalProcMMs wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX argsZipped perms subs args lstW2
+    if null argCs then let !perms
+                             | pairwisePermutations = genPairwisePermutationsLN l
+                             | otherwise = genPermutationsL l in
+      generalProcMMs pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX argsZipped perms subs args lstW2
     else do
      correct <- printWarning xs
      if correct == "n" then putStrLn (messageInfo 1) >> return "" -- for the multiple variations mode (with curly brackets and slash in the text) the program does not stop here, but the variation is made empty and is proposed further as a variant.
-     else let !perms = decodeLConstraints argCs . genPermutationsL $ l in
-            generalProcMMs wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX argsZipped perms subs args lstW2
+     else let !perms = decodeLConstraints argCs . (if pairwisePermutations then genPairwisePermutationsLN else genPermutationsL) $ l in
+            generalProcMMs pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX argsZipped perms subs args lstW2
 
 -- | Function provides message information.
 messageInfo :: Int -> String
@@ -247,6 +256,7 @@
  | n == 5 = "(/ You have specified properties / property and the range(s) so that for the words and their concatenations there are no variants available. Try to change the call parameters /)"
  | n == 6 = "If you would like to run the program (call the function) recursively with changes for the words or letter connections then, please, enter here the encoded string of the interpreter. If you would NOT like to use it recursively, then just press Enter."
  | n == 7 = "Please, input the text line for analysis. "
+ | n == 8 = "Please, input the number of words or their concatenations that the program takes as one line for analysis. "
  | otherwise = "You have specified just one variant of the properties. "
 
 -- |
@@ -266,7 +276,8 @@
       putStrLn ts >> return ts
 
 interactivePrintResultRecursive
- :: GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
+ :: Bool -- ^ Whether to use just pairwise permutations, or the full universal set.
+ -> GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
  -> [(Char,Char)] -- ^ The pairs of the 'Char' that corresponds to the similar phonetic languages consonant phenomenon
  -- (e. g. allophones). Must be sorted in the ascending order to be used correctly.
  -> CharPhoneticClassification -- ^ The 'Array' 'Int' 'PRS' must be sorted in the ascending order to be used in the module correctly.
@@ -294,7 +305,7 @@
  -> [String]
  -> Bool
  -> IO String
-interactivePrintResultRecursive wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX f xss args lstW2
+interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX f xss args lstW2
   | null xss = (putStrLn . messageInfo $ 5) >> return ""
   | otherwise = do
      let !datas = map (\(idx,str) -> show idx `mappend` ('\t' : str)) . trans232 . map f $ xss
@@ -309,9 +320,14 @@
      if null stringInterpreted then putStrLn ts >> return ts
      else do
        let strIntrpr = convStringInterpreter stringInterpreted ts
-           wordsNN = take 7 . words $ strIntrpr
            !firstArgs = takeWhile (not . all isLetter) args
-       generalProc2 wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX (firstArgs `mappend` wordsNN) lstW2
+       wordsNN <-
+         if pairwisePermutations then do
+           putStrLn . messageInfo $ 8
+           mStr <- getLine
+           let m = fromMaybe 10 (readMaybe mStr::Maybe Int) in return . take m . words $ strIntrpr
+         else return . take 7 . words $ strIntrpr
+       generalProc2 pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX (firstArgs `mappend` wordsNN) lstW2
 
 printWarning :: String -> IO String
 printWarning xs = do
@@ -365,7 +381,8 @@
 
 -- |
 generalProcMMs
- :: GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
+ :: Bool -- ^ Whether to use just pairwise permutations, or the full universal set.
+ -> GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
  -> [(Char,Char)] -- ^ The pairs of the 'Char' that corresponds to the similar phonetic languages consonant phenomenon
   -- (e. g. allophones). Must be sorted in the ascending order to be used correctly.
  -> CharPhoneticClassification -- ^ The 'Array' 'Int' 'PRS' must be sorted in the ascending order to be used in the module correctly.
@@ -400,15 +417,15 @@
  -> [String]
  -> Bool
  -> IO String
-generalProcMMs wrs ks arr gs js vs h qs ysss ws recursiveMode interactiveMM jstL0 args0 coeffs coeffsWX rs perms subs args lstW2 =
+generalProcMMs pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactiveMM jstL0 args0 coeffs coeffsWX rs perms subs args lstW2 =
  case length rs of
   0 -> putStrLn (messageInfo 4) >> return ""
   1 -> putStrLn (messageInfo 5) >> do
         temp <- generalProcMs wrs ks arr gs js vs h qs coeffs coeffsWX perms subs (head rs)
-        finalProc wrs ks arr gs js vs h qs ysss ws recursiveMode interactiveMM jstL0 args0 coeffs coeffsWX line temp args lstW2
+        finalProc pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactiveMM jstL0 args0 coeffs coeffsWX line temp args lstW2
   _ -> do
          genVariants <- mapM (generalProcMs wrs ks arr gs js vs h qs coeffs coeffsWX perms subs) rs
-         finalProc wrs ks arr gs js vs h qs ysss ws recursiveMode interactiveMM jstL0 args0 coeffs coeffsWX id (foldlI . map (map line) $ genVariants) args lstW2
+         finalProc pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactiveMM jstL0 args0 coeffs coeffsWX id (foldlI . map (map line) $ genVariants) args lstW2
 
 foldlI :: [[String]] -> [String]
 foldlI (xs:ys:xss) = foldlI (intersectInterResults xs ys : xss)
@@ -417,7 +434,8 @@
 
 -- |
 finalProc
- :: GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
+ :: Bool -- ^ Whether to use just pairwise permutations, or the full universal set.
+ -> GWritingSystemPRPLX -- ^ Data used to obtain the phonetic language representation of the text.
  -> [(Char,Char)] -- ^ The pairs of the 'Char' that corresponds to the similar phonetic languages consonant phenomenon
   -- (e. g. allophones). Must be sorted in the ascending order to be used correctly.
  -> CharPhoneticClassification -- ^ The 'Array' 'Int' 'PRS' must be sorted in the ascending order to be used in the module correctly.
@@ -445,8 +463,8 @@
  -> [String]
  -> Bool
  -> IO String
-finalProc  wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX f xss args lstW2
- | recursiveMode = interactivePrintResultRecursive wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX f xss args lstW2
+finalProc  pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX f xss args lstW2
+ | recursiveMode = interactivePrintResultRecursive pairwisePermutations wrs ks arr gs js vs h qs ysss ws recursiveMode interactive jstL0 args0 coeffs coeffsWX f xss args lstW2
  | otherwise = if interactive then interactivePrintResult f xss else putStrLn ts >> return ts
   where ts = concatMap (\t -> f t `mappend` newLineEnding) xss
 
diff --git a/Phonetic/Languages/General/Simple/Parsing.hs b/Phonetic/Languages/General/Simple/Parsing.hs
--- a/Phonetic/Languages/General/Simple/Parsing.hs
+++ b/Phonetic/Languages/General/Simple/Parsing.hs
@@ -63,8 +63,10 @@
  -> (String -> Bool) -- ^ The predicate that checks whether the given argument is not a phonetic language word in the representation.
  -> IO ()
 argsToSimplePrepare h qs p = do
- args00000 <- getArgs
- let args0000 = filter (not . null) (takeWhile (\xs -> take 2 xs /= "*t") args00000 `mappend` (drop 1 . dropWhile (\xs -> take 2 xs /= "^t") $ args00000))
+ args50 <- getArgs
+ let args00000 = filter (/= "+p") args50
+     pairwisePermutations = any (== "+p") args50
+     args0000 = filter (not . null) (takeWhile (\xs -> take 2 xs /= "*t") args00000 `mappend` (drop 1 . dropWhile (\xs -> take 2 xs /= "^t") $ args00000))
      textProcessmentFssFs = drop 1 . dropWhile (\xs -> take 2 xs /= "*t") . takeWhile (\xs -> take 2 xs /= "^t") $ args00000
      textProcessment0 = concat . filter (\xs -> take 2 xs == "*t") $ args00000
      textProcessment1 = fromMaybe 70 (readMaybe (drop 2 textProcessment0)::Maybe Int)
@@ -76,14 +78,15 @@
  let (wrs, ks, arr, gs, js, vs, ysss, ws) = innerProcessmentSimple gwrsCnts controlConts segmentData concatenationsFile
  textProcessmentFss0 <- mapM (readFileIfAny) textProcessmentFssFs
  let textProcessmentFss = filter (not . null) textProcessmentFss0
- if isPair coeffs then generalProc3G p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss ws {- old arguments follow -} toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX (drop 1 args) lstW
- else generalProc3G p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss ws toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX args lstW
+ if isPair coeffs then generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss ws {- old arguments follow -} toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX (drop 1 args) lstW
+ else generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss ws toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX args lstW
 
 -- | Similar to the 'argsToSimplePrepare' function, but takes explicitly the four 'FilePath's for the files
 -- respectively and the last argument the 'String' with all the other specifications. If it is not proper,
 -- the functions returns an error.
 argsToSimplePrepare4Files
- :: FilePath -- ^ With the 'GWritingSystemPRPLX' specifications only (see the gwrsysExample.txt file in the @phonetic-languages-phonetics-basics@ package as a schema);
+ :: Bool -- ^ Whether to use just pairwise permutations, or the full universal set.
+ -> FilePath -- ^ With the 'GWritingSystemPRPLX' specifications only (see the gwrsysExample.txt file in the @phonetic-languages-phonetics-basics@ package as a schema);
  -> FilePath -- ^ With the 5 meaningful lines that are delimited with the \'~\' line one from another with the specifications for the possible allophones (if any), 'CharPhoneticClassification', white spaces information (two 'String's) and the 'String' of all the possible 'PLL' 'Char's;
  -> FilePath -- ^ With the 'SegmentRulesG' specifications only;
  -> FilePath -- ^ With the 'Concatenations' specifications only (see the data in the EnglishConcatenated.txt file in the @phonetic-languages-phonetics-basics@ package as a list of English equivalents of the needed 'String's).
@@ -100,15 +103,15 @@
  -> String -- ^ If empty, the function is just 'generalProc2G' with the arguments starting from the first 'Bool' here.
  -> Int
  -> IO ()
-argsToSimplePrepare4Files fileGWrSys controlFile segmentRulesFile concatenationsFileP h qs other_args p textProcessmentFss textProcessment0 textProcessment1 = do
+argsToSimplePrepare4Files pairwisePermutations fileGWrSys controlFile segmentRulesFile concatenationsFileP h qs other_args p textProcessmentFss textProcessment0 textProcessment1 = do
  let args0000 = words other_args
      args000 = drop 4 args0000
      args00 = filter (/= "+r") args000
      recursiveMode = any (== "+r") args000 -- Specifies whether to use the interactive recursive mode
  (gwrsCnts, controlConts, segmentData, concatenationsFile, toFileMode1, interactiveP, jstL0, args0, coeffs, coeffsWX, args, lstW) <- argsProcessment fileGWrSys controlFile segmentRulesFile concatenationsFileP args00
  let (wrs, ks, arr, gs, js, vs, ysss, ws) = innerProcessmentSimple gwrsCnts controlConts segmentData concatenationsFile
- if isPair coeffs then generalProc3G p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss ws {- old arguments follow -} toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX (drop 1 args) lstW
- else generalProc3G p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss ws toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX args lstW
+ if isPair coeffs then generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss ws {- old arguments follow -} toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX (drop 1 args) lstW
+ else generalProc3G pairwisePermutations p textProcessmentFss textProcessment0 textProcessment1 wrs ks arr gs js vs h qs ysss ws toFileMode1 recursiveMode interactiveP jstL0 args0 coeffs coeffsWX args lstW
 
 innerProcessmentSimple
   :: String -- ^ Must be a valid 'GWritingSystemPRPLX' specifications 'String' representation only (see the gwrsysExample.txt file in the @phonetic-languages-phonetics-basics@ package as a schema);
diff --git a/Phonetic/Languages/Simplified/Array/General/FuncRep2RelatedG2.hs b/Phonetic/Languages/Simplified/Array/General/FuncRep2RelatedG2.hs
--- a/Phonetic/Languages/Simplified/Array/General/FuncRep2RelatedG2.hs
+++ b/Phonetic/Languages/Simplified/Array/General/FuncRep2RelatedG2.hs
@@ -151,7 +151,7 @@
      "v14","v21","v22","v23","v24","v31","v32","v33","v34","v41","v42","v43","v44","v51","v52","v53",
      "v54","v61","v62","v63","v64","v71","v72","v74","w01","w02","w03","w04","w11","w12","w13","w14",
      "w21","w22","w23","w24","w31","w32","w33","w34","x01","x02","x03","x04","x11","x12","x13","x14",
-     "x21","x22","x23","x24","x31","x32","x33","x34"] . replicate 1000 $ True) choice =
+     "x21","x22","x23","x24","x31","x32","x33","x34"] . replicate 2000 $ True) choice =
         procRhythmicity23F k g h choice coeffs wrs ks arr gs us vs
  | otherwise = getBFstL' (procB2F wrs ks arr gs us vs g (xs !! 0) coeffs)
      [("y",procB2F wrs ks arr gs us vs g (xs !! 0) coeffs),
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -76,8 +76,13 @@
 Since the 0.5.0.0 version you can use also "w" and "x" series (lines) of properties. They use more complex
 approach and are intended for 4 elements in the rhythmic groups. For more information, please, refer to the
 section 'WX argument' in the English instruction:
-https://oleksandrzhabenko.github.io/uk/InstructionEng.12.1.pdf
 
+https://oleksandrzhabenko.github.io/uk/InstructionEng.13.pdf
+
+or here:
+
+https://web.archive.org/web/20211014195109/https://oleksandrzhabenko.github.io/uk/InstructionEng.13.pdf
+
 There are also some additional information there about the changes in the 0.6.0.0 version.
 
 Since the 0.6.0.0 version there are made several significant changes.
@@ -96,3 +101,8 @@
 
 Since the 0.9.0.0 version there are also recursive interactive mode of the
 Phonetic.Languages.General.Simple module functions.
+
+Since the version 0.13.0.0 added the pairwise permutations
+mode (with +p command line argument) where just pairwise
+permutations are used and the length of the line can be
+up to 10 words or their concatenations.
diff --git a/phonetic-languages-simplified-generalized-examples-array.cabal b/phonetic-languages-simplified-generalized-examples-array.cabal
--- a/phonetic-languages-simplified-generalized-examples-array.cabal
+++ b/phonetic-languages-simplified-generalized-examples-array.cabal
@@ -3,7 +3,7 @@
 -- http://haskell.org/cabal/users-guide/
 
 name:                phonetic-languages-simplified-generalized-examples-array
-version:             0.12.1.0
+version:             0.13.0.0
 synopsis:            Helps to create texts with the given phonetic properties (e. g. poetic).
 description:         Is rewritten from the modules of the @phonetic-languages-simplified-examples-array@ package. Can be used not only for Ukrainian, but also for other languages.
 homepage:            https://hackage.haskell.org/package/phonetic-languages-simplified-generalized-examples-array
@@ -21,6 +21,6 @@
   exposed-modules:     Phonetic.Languages.General.Lines, Phonetic.Languages.General.Parsing, Phonetic.Languages.General.Simple, Phonetic.Languages.General.GetTextualInfo, Phonetic.Languages.Simplified.Array.General.FuncRep2RelatedG2, Phonetic.Languages.General.Simple.Parsing, Phonetic.Languages.General.Lines.Parsing, Phonetic.Languages.General.GetInfo.Parsing, EspeakNG_IPA
   -- other-modules:
   other-extensions:    BangPatterns, FlexibleContexts
-  build-depends:       base >=4.8 && <4.16, phonetic-languages-simplified-generalized-examples-common >=0.2.1 && <1, subG >=0.4.2 && <1, phonetic-languages-simplified-generalized-properties-array >=0.8.1 && <1, phonetic-languages-simplified-base >=0.2 && <1, phonetic-languages-permutations-array >=0.1 && <1, phonetic-languages-filters-array >=0.1 && <1, phonetic-languages-phonetics-basics >=0.8.4 && <1, phonetic-languages-constraints-array >=0.1 && <1, parallel >=3.2.0.6 && <4, phonetic-languages-plus >=0.4.1 && <1, mmsyn2-array >=0.1.3 && <1, heaps >=0.3.6.1 && <1, mmsyn3 >=0.1.5 && <1, process >= 1.6.2 && <2, string-interpreter >=0.5.2 && <1
+  build-depends:       base >=4.8 && <4.16, phonetic-languages-simplified-generalized-examples-common >=0.3 && <1, subG >=0.4.2 && <1, phonetic-languages-simplified-generalized-properties-array >=0.8.2 && <1, phonetic-languages-simplified-base >=0.3 && <1, phonetic-languages-permutations-array >=0.2 && <1, phonetic-languages-filters-array >=0.1 && <1, phonetic-languages-phonetics-basics >=0.8.4 && <1, phonetic-languages-constraints-array >=0.1 && <1, parallel >=3.2.0.6 && <4, phonetic-languages-plus >=0.4.1 && <1, mmsyn2-array >=0.1.3 && <1, heaps >=0.3.6.1 && <1, mmsyn3 >=0.1.5 && <1, process >= 1.6.2 && <2, string-interpreter >=0.5.4.1 && <1
   -- hs-source-dirs:
   default-language:    Haskell2010
